Spring boot中引入log4j时遇到的坑

最近测试在spring boot项目中引入log4j日志工具,碰到了一系列的问题,费了好大的劲,终于解决完成,现做个记录,供大家参考,有错误的地方,还望指出:

spring boot的框架版本:1.4.3.RELEASE;
jdk版本:1.8;

问题1:
1.3.8以后的spring boot版本对log4j不支持,无法通过maven加载相应的jar包,需要改为log4j2;

<dependency>
            <groupId>org.springframework.boot</groupId>  
            <artifactId>
              spring-boot-starterlog4j2
            </artifactId>   
</dependency>

问题2:
log4j2与logbackjar包冲突,无法正常使用日志

这个问题最坑,有的文章说在

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>
                 spring-boot-starter-web
           </artifactId>
   </dependency> 

配置下面加下面这个去除语句,去除springboot中自带的logback日志工具;

<exclusions>  
<exclusion>  
                      <groupId>org.springframework.boot</groupId>  
    <artifactId>
       spring-boot-starter-logging
   </artifactId>  
</exclusion>  
</exclusions>

经过我的使用经历,这个解决不了问题,需要在下面的dependence中加入去除语句

<groupId>org.springframework.boot</groupId>
<artifactId>
    spring-boot-starter
</artifactId>

问题3:
在maven build 时,报错jar包加载出错:invalid LOC header (bad signature)

把相应的jar包删除,重新下载即可;

问题4:
配置文件的错误

(1)log4j2的配置文件不能再是 .properties 类型的文件,Log4j2提供了三种ConfiguarationFactory的实现:JSON、YAML、XML。

(2)文件的位置要与设置的保持匹配

可以在application.properties文件中指定:

logging.config=classpath:log4j2.xml ;

在默认情况下,系统选择configuration文件的优先级如下:(classpath为scr文件夹)
classpath下名为 log4j-test.json 或者log4j-test.jsn文件
classpath下名为 log4j2-test.xml
classpath下名为 log4j.json 或者log4j.jsn文件
classpath下名为 log4j2.xml

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值