Spring boot - 如何获取 WARN 的框架日志记录和 DEBUG 的应用程序日志记录
Posted
技术标签:
【中文标题】Spring boot - 如何获取 WARN 的框架日志记录和 DEBUG 的应用程序日志记录【英文标题】:Spring boot - How to get framework logging for WARN and application logging to 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.springframework
和 org.hibernate
,并将它们设置为 WARN。
我的问题:
上述哪种方法是将所有框架日志记录到 WARN 级别的最佳方法? 如果我将 ROOT 记录器设置为 WARN 会有帮助吗?它的其他影响是什么? 可以将 ROOT 记录器设置为 WARN 吗?它可能会导致丢失一些应用程序日志记录吗?【问题讨论】:
这似乎是关于白名单与黑名单,我对类似问题的回答在这里***.com/a/3569726/217324 @NathanHughes 这完美地回答了我的问题,谢谢。 【参考方案1】:在 Spring Boot 中,ERROR
、WARN
和 INFO
级别始终作为根记录器和所有依赖项的默认值打印。
如果您想打印额外的日志,您需要在application.properties
中指定:
logging.level.org.hibernate=DEBUG
logging.level.com.abc.xyz=DEBUG
如果您将ROOT
记录器设置为WARN
,您将只会看到警告和错误消息(除非您为不同的包覆盖此设置)。
我建议保留所有 Spring 相关依赖项的默认设置,因为这将允许您查看所有信息、警告和错误消息。如果您真的只需要查看警告和错误消息,请将根记录器设置为 WARN
。
然后,您可以在属性中指定要登录到DEBUG
的任何其他类。
【讨论】:
以上是关于Spring boot - 如何获取 WARN 的框架日志记录和 DEBUG 的应用程序日志记录的主要内容,如果未能解决你的问题,请参考以下文章
spring-bootspring-boot使用log4j框架时,提示警告-》log4j:WARN Please initialize the log4j system properly.
Spring Boot application.yaml中多个默认环境变量的语法