Spring Boot 允许您使用 application.properties 配置日志系统的一些基本方面,但有limits:
要配置日志系统的更细粒度设置,您需要使用相关 LoggingSystem 支持的本机配置格式。
换句话说,如果你想做一些没有通过属性特别支持的事情,你将无法添加和编辑 logback.xml 文件(假设你正在使用 logback)。
那么,让我们来看看你的要求:
- “我想在不在控制台的文件中记录消息。”
根据docs:
默认情况下,Spring Boot 只会登录到控制台,不会写入日志文件。如果您想将日志文件另外(强调添加)写入控制台输出,您需要设置 logging.file 或 logging.path 属性(例如在您的 application.properties 中)。
换句话说,not无法使用属性登录到控制台。
- “我只在我的 application.log 文件中获取 info 的日志消息,但我还想要错误消息和调试消息。”
默认情况下,Spring Boot 日志记录在 INFO 级别,应该包括 ERROR,您确定您没有使用默认设置获取 ERROR 日志吗?
此外,您只指定要记录的最高级别,而不是每个级别,并且您必须指定要设置级别的记录器。
这行不通:
logging.level: DEBUG
logging.level: ERROR
这是一个如何根据docs配置自定义日志级别的示例:
logging.level.org.springframework.web:调试
logging.level.org.hibernate:错误
您也可以使用logging.level.* 属性来设置根记录器的级别,如下所示:
logging.level.ROOT: DEBUG
注意,在 ROOT logger 上设置 DEBUG 日志会产生大量的日志。我刚刚在这里测试了一下,刚启动就得到了大约 13MB 的日志,没有做任何事情。
- “我想要 error.log 文件中的错误消息和 debug.log 中的调试消息以及 info.log 中的信息消息。”
同样,这不能单独使用属性来完成。 Spring Boot 允许您只配置一个 logging.file 属性,该属性将包含所有日志。
有关可用日志记录属性的完整列表和示例值,请参阅here。