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

时间:2014-08-18 13:46:53

标签: logging logback spring-boot java.util.logging

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

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

logging.level.=TRACE

应根据SLF4JBridgeHandler记录所有内容。

我是否缺少某些东西或是否是回归问题(由初学者使用)而不是我的误解?

2 个答案:

答案 0 :(得分:1)

SLF4JBridgeHandler仅在jul Loggers上从启用的级别接收LogRecord (这个事实隐藏在install方法的javadoc中)

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

为了测试,您可以强制执行root jul记录器的级别:

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

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

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

(请注意,您应该在jul生产配置中更具体地说明slf4j文档warns关于" jul启用的性能影响"但是" slf4j已禁用"日志)

答案 1 :(得分:1)

请参阅我的相关回答:https://stackoverflow.com/a/33770877/3004042

简而言之,使用带有Logback的Spring Boot 1.3.0版。