Spring Boot – 设置使用Java Util Logging(jul)的外部jar的日志记录级别

根据
Spring Boot文档,只需使用Spring Boot Logging Starter并在应用程序属性中设置适当的logging.level,就可以设置多个日志记录框架(jul,slf4j等)的日志记录级别.一切正常,除了我使用的库是jul和日志级别Level.FINER.但是,Level.INFO已正确记录.

我将application.properties中的level设置为:

logging.level.=TRACE

应该根据SLF4JBridgeHandler记录所有内容.

我缺少什么,或者它是一个回归问题(由首发使用)而不是我的误解?

最佳答案 SLF4JBridgeHandler仅在jul Loggers上从启用的级别接收LogRecord

(这个事实隐藏在
install方法的javadoc中)

由于默认JUL配置仅记录INFO或更高级别,因此桥接器不会收到FINE / FINER / FINEST级别.

为了测试这个,你可以像这样强制root jul logger的级别:

LogManager.getLogManager().getLogger("").setLevel(Level.FINE);

(或在JVM上显式配置自定义logging.properties和.level = FINE)

必须使用slf4j级别配置(通过application.properties中的logback.xml或logging.level.xxxxxx属性)完成此配置

(请注意,您应该在jul生产配置中更具体,因为slf4j文档warns关于“jul enabled”但“slf4j disabled”日志的性能影响)

点赞