我想将消息记录在文件中,而不是在控制台上。我正在使用 Spring Boot,我的配置如下:
应用程序属性:
logging.level: DEBUG
logging.level: ERROR
logging.file: ${HOME}/application.log
我只在我的 application.log
文件中收到 INFO 的日志消息,但我也想要 ERROR 和 DEBUG 消息。
我的要求是我想要 error.log
文件中的 ERROR 消息和 — 中的 DEBUG 消息和 — info.log
debug.log
中的 INFO 消息。
非常感谢任何帮助。
原文由 Qasim 发布,翻译遵循 CC BY-SA 4.0 许可协议
Spring Boot 允许您使用 application.properties 配置日志系统的一些基本方面,但有一些 限制:
换句话说,如果你想做一些不是通过属性特别支持的事情,你将无法添加和编辑
logback.xml
文件(假设你使用的是 logback)。所以,让我们来看看你的要求:
根据 文档:
换句话说,不能使用属性来完成 不 登录到控制台。
默认情况下,INFO 级别的 Spring Boot 日志应该包括 ERROR,您确定您 没有 使用默认设置获取 ERROR 日志吗?
此外,您只指定要记录的最高级别,而不是每个级别,并且您必须指定要设置级别的记录器。
这不起作用:
这是一个如何根据 文档 配置自定义日志级别的示例:
您还可以使用
logging.level.*
属性来设置根记录器的级别,如下所示:请注意,在 ROOT logger 上设置 DEBUG 日志记录会产生大量日志。我刚刚在这里对其进行了测试,仅在启动时就获得了大约 13MB 的日志,而没有做任何事情。
同样,这不能单独使用属性来完成。 Spring Boot 允许您只配置一个
logging.file
属性,该属性将包含所有日志。有关可用日志记录属性和示例值的完整列表,请参见 此处。