温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java Logger 怎样集成 spring

发布时间:2026-09-12 09:47:04 来源:亿速云 阅读:84 作者:小樊 栏目:编程语言

在 Spring(包括 Spring Boot)里集成 Java 的 java.util.logging(JUL,即 Logger)有几种常见方式,取决于你用的是 Spring Boot 还是 传统 Spring,以及你希望 只用 JUL 还是 统一日志框架

下面按常见场景给你说明。


一、Spring Boot 中集成 java.util.logging.Logger

1️⃣ Spring Boot 默认日志

Spring Boot 默认使用 Logback,但底层会通过 spring-jcl 把日志统一桥接到 SLF4J。

如果你的代码直接写:

import java.util.logging.Logger;

Logger logger = Logger.getLogger("com.example.demo");
logger.info("hello");

是可以直接用的,但日志最终会被 Spring Boot 的日志系统接管(输出格式由 Spring 控制)。


2️⃣ 强制让 Spring Boot 使用 java.util.logging

如果你只想用 JUL,可以在 application.properties 中指定:

logging.config=classpath:logging.properties

并创建 src/main/resources/logging.properties

handlers=java.util.logging.ConsoleHandler
.level=INFO
java.util.logging.ConsoleHandler.level=INFO
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter

⚠️ 不推荐在 Spring Boot 中完全替换为 JUL,因为会失去 Logback 的很多能力。


二、传统 Spring(非 Boot)集成 JUL

1️⃣ 直接使用 JUL(最简单)

import java.util.logging.Logger;
import org.springframework.stereotype.Component;

@Component
public class DemoService {
    private static final Logger logger =
        Logger.getLogger(DemoService.class.getName());

    public void test() {
        logger.info("Spring + JUL");
    }
}

✅ Spring 不限制你用哪种 Logger。


2️⃣ 统一日志(推荐)

在真实项目中,推荐:

  • 代码中使用 SLF4J
  • 底层使用 Logback / Log4j2
  • JUL 日志桥接进来

Maven 依赖(桥接 JUL → SLF4J)

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jul-to-slf4j</artifactId>
</dependency>

在 Spring 启动时注册:

import org.slf4j.bridge.SLF4JBridgeHandler;

@Configuration
public class LoggingConfig {
    static {
        SLF4JBridgeHandler.removeHandlersForRootLogger();
        SLF4JBridgeHandler.install();
    }
}

这样 JUL 的日志会自动走 SLF4J


三、Spring 中推荐的做法(最佳实践)

推荐结构:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@RestController
public class DemoController {
    private static final Logger log =
        LoggerFactory.getLogger(DemoController.class);

    public void test() {
        log.info("推荐方式");
    }
}

原因:

  • 与 Spring 生态统一
  • 可随时切换 Logback / Log4j2
  • 性能更好(占位符日志)

四、什么时候该用 java.util.logging.Logger

✅ 适合:

  • JDK 原生代码
  • 不想引入第三方依赖
  • 教学 / Demo

❌ 不推荐:

  • 企业 Spring 项目
  • 需要复杂日志配置
  • 微服务 / 分布式日志

总结

场景 建议
Spring Boot 直接用 JUL 可以,但建议 SLF4J
传统 Spring 可直接用 JUL
企业项目 SLF4J + Logback
兼容旧 JUL 代码 jul-to-slf4j 桥接

如果你愿意,我可以:

  • 给你一个 完整 Spring Boot + JUL 示例
  • 或帮你 从 JUL 迁移到 Logback
  • 或解释 logging.properties 详细配置

你现在是 Spring Boot 还是普通 Spring?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI