根据 Spring Boot 文档(最新),它提到 Spring Boot 在内部使用 logback。
我已经使用了 log4j starter,如下所述,不包括 logback
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
</dependencies>
例如如果以下命令在 Debug模式下运行(假设 sboot1 是我的 uber jar)
java -jar target\sboot1-1.0.jar --debug
我没有获得之前使用 logback 生成的调试日志,它显示“排除”和“包含”以及其他必要的信息。
使用 log4j 等其他日志框架时如何获取 --debug 日志?
最佳答案
当您启动应用程序时,您将看到来自 Log4j 的三个警告消息:
log4j:WARN No appenders could be found for logger (org.springframework.boot.SpringApplication).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
他们告诉您您没有正确配置 Log4j。
查看您的 log4j-spring.properties
文件,您尚未配置 log4j.rootCategory
,您配置的唯一记录器是 log4j.logger .com.mnkartik
。这意味着 com.mnkartik
包之外的代码执行的任何日志记录都没有配置任何附加程序,因此是三个警告消息中的第一个。
将以下内容添加到您的 log4j-spring.properties
文件中:
logging.rootCategory=INFO, consoleAppender, fileAppender
这意味着 com.mnkartik
之外的所有记录器都将在 INFO
级别进行记录,并将写入控制台和文件附加程序。因此,--debug
现在应该具有所需的效果,因为 org.springframework.boot.*
中的代码现在有地方可以登录。
顺便说一句,可能还值得指出的是,Apache 已经宣布 Log4j 的生命周期结束,因此,它在 Spring Boot 1.3 中被弃用,并将在 1.4 中删除。您应该考虑迁移到 Log4j 2 的 Logback。
关于spring-boot - Debug模式下的 Spring Boot 日志不使用 log4j starter 打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34747051/