spring boot 各版本中使用 log4j2 记录日志
前言
Spring Boot中默认日志工具是 logback
,只不过我不太喜欢 logback
。为了更好支持 spring boot 框架,我使用 log4j
。
spring boot 各版本与 log4j 的支持情况
1. spring boot 1.2.X 版本
spring boot 1.2.X
版本一般建议使用默认日志工具(logback),也可以使用 log4j。
但,注意的是:Spring Boot 1.2.4.RELEASE
包含一个bug,github上关于该问题的解释。所以,当你通过application.properties
定义日志级别时,该错误会更改父记录器级别,在最差情况下会更改根记录器级别。虽然这个bug是修复在1.2.6.RELEASE
,我建议至少使用1.2.8.RELEASE
(如果你想坚持1.2.x)。
因为 spring boot 现在仍然在快速发展阶段,版本更新较快,有时候就会因为版本问题而出现各种奇奇怪怪的bug。
2. spring boot 1.3.X 版本
spring boot 从 1.3.X 版本开始支持 slf4j
+log4j/log4j2
。
* 首先,先解决为什么使用 SL4J Facade?
对于这个问题,网上已经有许多精彩地点答案了,我就直接附上其中一篇的地址了:为什么要使用SLF4J而不是Log4J。
同时,附上一张工作流程图:
- 然后,就是在自己的 springboot 项目中使用 log4j。
补充一下,由于方法一样,我将slf4j
+log4j2
放到了1.4.X
版本中来应用。
1.创建一个1.3.X
版本的 spring boot 项目(记得排除logback-classic
的依赖)。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
</exclusions>
</dependency>
2.引入 SL4J 依赖。
<dependency>
<groupId>org.slf4j</groupId>
<