根据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>
和如果在调试模式下运行以下命令(假设sboot1是我的超级罐)
java -jar target\sboot1-1.0.jar --debug
我没有得到先前使用logback生成的调试日志,后者显示&#34;排除&#34;和&#34;包含物&#34;和其他必要的信息。
如何在使用log4j等其他日志框架时获取--debug日志?
答案 0 :(得分:2)
当您启动应用程序时,您将看到来自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
包之外的代码执行的任何日志记录都没有配置任何appender,因此是三条警告消息中的第一条。
将以下内容添加到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。