spring-boot - 如何为每个文件写入和控制台写入指定特定的记录器级别
问题描述
我想在我的 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 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 中,它们中的每一个都非常灵活,并且会提供您正在寻找的解决方案
推荐阅读
- php - 如何从价格背面删除 ,00 或 .00?
- javascript - 每次单击按钮时如何创建带有圆圈的画布
- python - Numpy相等的dtype
- asp.net - 附加类型为“X”的实体失败,因为同一类型的另一个实体已经具有相同的主键值。错误
- vue.js - 让 Chartkick 在渲染图表之前等待从 Firebase 填充数据
- tensorflow - 实现 tensorflow 高级 api 时出错
- powerbi - power bi 瀑布图首先显示较旧的日期
- r - 从具有 H、M、S 的字符串中拆分时间值 - R 编程
- c# - 如何打开标签页并根据在datagridview中选择的行更改标签页文本?
- javascript - JS 为第 n 个实例运行相同的函数