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.springframeworkorg.hibernate,并将它们设置为 WARN。

我的问题:

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

【问题讨论】:

这似乎是关于白名单与黑名单,我对类似问题的回答在这里***.com/a/3569726/217324 @NathanHughes 这完美地回答了我的问题,谢谢。 【参考方案1】:

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

如果您想打印额外的日志,您需要在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中多个默认环境变量的语法

spring boot 在 xml文件中怎么些日志输出路径

019-Spring Boot 日志

在 Spring Boot 应用程序中将数据存储到数据库的问题

Spring Boot FAQ