spring boot 集成log4j 遇到的坑……
最近自己需要一套框架开发,本着熟悉和方便使用的观念,日志首先就想到了log4j
spring boot 2.0
jdk 1.8
入坑开始
- log4j和spring boot 默认logback 冲突,首先移除默认的【spring-boot-starter-logging】依赖关系;
<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>
- 1.3.8以后的spring boot版本对log4j不支持,无法通过maven加载相应的jar包,需要改为log4j2;
- 配置文件的错误:log4j2的配置文件不能再是 .properties 类型的文件,Log4j2提供了三种ConfiguarationFactory的实现:JSON、YAML、XML;
- 文件位置指定
logging:
config=classpath:log4j2.xml
文件优先级
classpath下名为 log4j-test.json 或者log4j-test.jsn文件
classpath下名为 log4j2-test.xml
classpath下名为 log4j.json 或者log4j.jsn文件
classpath下名为 log4j2.xml
- Logback是Log4j的作者的另一个开源日志组件,与Log4j相比,Logback重新了内核,使它的性能提升了很多,大约是Log4j的10倍,同时占用更小的内存,并且完整的实现了SLF4J API是你可以很方便的切换日志框架。
- Log4j2有着和Logback相同的功能,但又有自己单用的功能,比如:插件式结构、配置文件优化、异步日志等。
Log4j2是Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些固有问题。
从GitHub的更新日志来看,Logback已经有半年没有更新了,而作为知名组织的Apache下的Log4j2的更新却是非常活跃的,Log4j 1.x 于2015年8月停止维护更新了。