首页 文章

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

提问于
浏览
3

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

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

logging.level.=TRACE

哪个应根据SLF4JBridgeHandler记录所有内容 .

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

2 回答

  • 1

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

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

    为了 test 这你可以像这样强制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"日志的性能影响)

  • 1

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

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

相关问题