根据 Spring Boot 文档,可以通过使用 Spring Boot Logging Starter 并在应用程序属性中设置适当的 logging.level 来设置多个日志记录框架(jul、slf4j 等)的日志记录级别。除了我使用的库使用 jul 和日志级别 Level.FINER 进行日志记录外,一切正常。但是,Level.INFO 已正确记录。
我将 application.properties 中的级别设置为:
logging.level.=TRACE
应该根据 SLF4JBridgeHandler 记录所有内容.
我是否缺少某些东西,或者是 logback 的问题(由初学者使用)而不是我的误解?
最佳答案
SLF4JBridgeHandler 仅从 jul 记录器上的启用级别接收 LogRecord
(这个事实隐藏在 install 方法的 javadoc 中)
由于默认的 JUL 配置仅记录 INFO 或更高级别,因此网桥不会接收 FINE/FINER/FINEST 级别。
为了测试 这可以像这样强制根 jul 记录器的级别:
LogManager.getLogManager().getLogger("").setLevel(Level.FINE);
(或在 JVM 上使用 .level=FINE 显式配置自定义 logging.properties)
这个配置必须用slf4j级别的配置来完成(通过logback.xml或者application.properties中的logging.level.xxxxxx属性)
(请注意,您应该在 jul 生产配置中更具体地作为 slf4j 文档 warns 关于“启用 jul”但“禁用 slf4j”日志的性能影响)
关于logging - Spring Boot - 设置使用 Java Util Logging (jul) 的外部 jar 的日志记录级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25364913/