Spring Boot 在哪里存储其默认的日志记录设置
Posted
技术标签:
【中文标题】Spring Boot 在哪里存储其默认的日志记录设置【英文标题】:Where does Spring Boot store its default logging settings 【发布时间】:2019-08-15 22:43:00 【问题描述】:我正在创建一个 Java Spring Boot 2.X 应用程序。在我的配置(application.yml)中,我添加了以下属性:
logging:
file: $spring.applicaton.name.log
这似乎开箱即用。但是,我很好奇底层默认日志配置驻留在哪里。使用谷歌我发现 Spring Boot 使用 logback,但我看不到 logback-spring.xml 文件。 this other question 似乎也提到了 log4j2 而不是 logback - 这样做是否有效,因为他们添加了对 log4j2 的依赖(我没有添加任何依赖,除了 sprint 启动启动器)。我还观察到两种主要的日志记录机制似乎是滚动文件附加程序和控制台记录器。这是在哪里定义的?
我的问题是:Spring Boot 从哪里获取它的默认日志配置?我找到了these configuration files,但我不确定它们是否正确。他们的命名约定和语法不是我所期望的。您如何选择特定的日志记录实现 - 通过依赖项或配置?
【问题讨论】:
如果你阅读配置文件,你会看到这样的注释:相当于Boot执行的编程初始化,这意味着配置是通过Java代码编程完成的,而不是使用配置文件。 @JBNizet 这些编程默认值没有记录吗?如果不是,哪个类或哪个包包含相关代码? docs.spring.io/spring-boot/docs/current/reference/htmlsingle/… “你如何选择具体的日志实现?” Configuration @JBNizet 谢谢,这正是我想要的 【参考方案1】:默认Logback配置存储在:
spring-boot-2.1.1.RELEASE.jar
/org/springframework/boot/logging/logback/base.xml
默认Log4j2配置存储在:
spring-boot-2.1.1.RELEASE.jar
/org/springframework/boot/logging/log4j2/log4j2-file.xml
默认Java Util Logging配置存储在:
spring-boot-2.1.1.RELEASE.jar
/org/springframework/boot/logging/java/logging-file.properties
注意:jar 文件的版本当然会有所不同。
Spring 默认为 Logback。阅读Spring documentation,了解如何指定不同的实现以及如何配置它。
【讨论】:
请通过链接到文档的第 26 章来更新此答案,因为该文件更详细地解释了何时使用特定配置以及原因。以上是关于Spring Boot 在哪里存储其默认的日志记录设置的主要内容,如果未能解决你的问题,请参考以下文章