首页 > 解决方案 > 如何为每个文件写入和控制台写入指定特定的记录器级别

问题描述

我想在我的 logfile.log 中只保留一个 WARN、ERROR 和 FATAL 的日志,而希望在我的 Spring Boot 应用程序中将所有上述信息写入控制台。我看到当我这样做时log.level.root=WARN,在 application.properties 文件中它为整个应用程序设置了 WARN 的日志级别。我该怎么做才能在控制台中显示所有日志消息,但只在文件中写入 WARN 以上的消息?

还!!!!有没有办法将级别设置为 INFO 并仅在文件中写入某些指定的日志。例如。我想使用 INFO 级别跟踪日志中的每个登录/注销/文件更改(例如与业务逻辑相关),但不想看到在应用程序启动期间弹出的默认 INFO 消息,例如

2018-07-11 10:19:00.554 INFO 11190 --- [ main] c.v.guruji.GurujiApplication : Started GurujiApplication in 10.307 seconds (JVM running for 11.029) .

标签: spring-bootlogginglogfactory

解决方案


答案取决于您计划使用哪个实际的日志记录框架,spring boot 与其中的大多数集成。

通常,如果您选择“零配置”,请使用application.properties / yaml以下行在 Spring Boot 配置文件 () 中指定事件级别:

logging.level.com.myorg=DEBUG
logging.level.root=INFO

如果你想写入文件,或者通常提供更灵活的配置,你需要配置一个叫做 appender 的东西,但这不是 Spring Boot 的概念,而是一个日志框架术语。

所以实际的配置将取决于特定的日志框架,通常,人们将 XML 配置文件(如 logback.xml,如果你使用 logback)放到src/main/resources文件夹中,它就可以工作。另一个现代选项是 log4j2 框架。

从问题看来,您最好先了解如何使用这些框架,然后尝试将它们集成到 Spring Boot 中,它们中的每一个都非常灵活,并且会提供您正在寻找的解决方案

  • 是有关如何将每个框架与 Spring Boot 一起使用的教程的链接

  • 是spring boot官方文档的日志章节


推荐阅读