【问题标题】:Spring boot - How to get framework logging for WARN and application logging to DEBUGSpring boot - 如何获取 WARN 的框架日志记录和 DEBUG 的应用程序日志记录
【发布时间】:2019-08-24 19:09:00
【问题描述】:

我正在使用带有 Logback 的 Spring Boot 进行日志记录。目前,我们将根记录器设置为 DEBUG,然后将应用程序包记录器(如 com.abc.xyz)设置为 DEBUG。

现在,正在发生的事情是所有框架 - Hibernate、Spring 等都在打印它们的 DEBUG 日志。我们希望所有框架都应该只打印 WARN 和下面的日志,所以下面是我正在考虑的 2 个选项:

选项 1: 将 ROOT 记录器设置为 WARN。但是我不确定它的含义是什么,甚至不确定它是否有助于实现我正在寻找的东西。

选项 2: 创建特定的记录器,例如 org.springframeworkorg.hibernate,并将它们设置为 WARN。

我的问题:

  • 上述哪种方法是将所有框架日志记录到 WARN 级别的最佳方法?
  • 如果我将 ROOT 记录器设置为 WARN 会有帮助吗?它的其他影响是什么?
  • 可以将 ROOT 记录器设置为 WARN 吗?它可能会导致丢失一些应用程序日志记录吗?

【问题讨论】:

  • 这似乎是关于白名单与黑名单,我对类似问题的回答在这里stackoverflow.com/a/3569726/217324
  • @NathanHughes 这完美地回答了我的问题,谢谢。

标签: java spring spring-boot logging logback


【解决方案1】:

在 Spring Boot 中,ERRORWARNINFO 级别始终作为根记录器和所有依赖项的默认值打印。

如果您想打印额外的日志,您需要在application.properties 中指定:

logging.level.org.hibernate=DEBUG
logging.level.com.abc.xyz=DEBUG

如果您将ROOT 记录器设置为WARN,您将只会看到警告和错误消息(除非您为不同的包覆盖此设置)。

我建议保留所有 Spring 相关依赖项的默认设置,因为这将允许您查看所有信息、警告和错误消息。如果您真的只需要查看警告和错误消息,请将根记录器设置为 WARN

然后,您可以在属性中指定要登录到DEBUG 的任何其他类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 2021-11-19
    • 2016-05-04
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多