log4j、logback和slf4j混合使用趟过的坑

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzl19870309/article/details/76650942

背景:之前的一个项目采用log4j和slf4j做日志输出,后来引入了dubbo+zookeeper。新的项目采用logback和slf4j。老的项目需要使用maven引用新项目生成jar

发现的问题:做好一切准备后,发现控制台日志不停的刷,几分钟可以刷200M+,主要来自org.apache.zookeeper.ClientCnxn的debug日志。

这里写图片描述

解决思路:
1、调整log4j.properties中配置
这里写图片描述
结果不起作用

2、查看输出出来的日志格式,发现和log4j定义的格式并不一致

3、查看ClientCnxn源码,发现:

private static final Logger LOG = LoggerFactory.getLogger(ClientCnxn.class);

说明LOG是采用slf4j定义生成的。
结合2、3所以怀疑是不是引入了logback相关的jar

4、查看pom.xml,发现项目中确实引入了logback相关的jar
这里写图片描述
所以猜测ClientCnxn中的日志输出会使用logback默认输出,而不是通过log4j.所以果断把logback给排除掉。

5、尝试把logback相关的jar屏蔽掉,采用的方法
这里写图片描述

经过测试,完美搞定

猜你喜欢

转载自blog.csdn.net/wzl19870309/article/details/76650942