根据
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”日志的性能影响)