slf4j-log4j12加log4j自定义配置包路径日志输出

原项目依赖只引用了:

      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>${slf4j.version}</version>
      </dependency>

这么一个关于日志的包,项目也是正常的在跑,日志也是看似正常的输出,日志一直是info级别,且只是简单的配置了一下输出到控制台:

log4j.rootLogger=INFO,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t] [%c]-[%p] %m%n

上面这个log4j.properties配置只是把项目中所有info级别的可见日志输出到控制台,因为用的tomcat也就是在catalina.out这个文件里,并且项目没有控制文件切割,如果服务器上也没控制catalina.out文件切割那么这个文件就会越来越大,等哪天真的有问题要查日志了那文件估计大到打不开,不能给自己找那麻烦

最近在升级项目架构,支持多数据源切换,部署的时候发现log4j不能正常初始化,原因是有两个同名类,一个在activemq-all包里,一个在slf4j-log4j12包里,总共提示了两个错:

1、log4j WARN No appenders could be found for logger, Please initialize the log4j system properly
2、Class path contains multiple SLF4J bindings,这里提示是类是StaticLoggerBinder.class

第一个感觉这第一个错是因为第二个错导致,所以解决先第二个,在mq依赖包中排除slf4j-log4j12的依赖就行了,但是我从依赖树关系查看,activemq-all这个包里只有一个slf4j-api的依赖包,没有看到slf4j-log4j12,所以也就不可能会排除slf4j-log4j12,只能排除slf4j-api, 排除这个没用啊,按照提示的StaticLoggerBinder类名查找mq里的类,定位一下发现:slf4j-log4j12加log4j自定义配置包路径日志输出
这个activemq-all包中包含了slf4j-log4j12同包内容,源码直接打进去了,后来把activemq-all果断换成activemq-client,这还没完,这个第二个错误没有了,但是出现了别的问题:

3、自定义包路径日志输出两遍

按照上面log4j配置文件,只有一个rootLogger,这样会打印所有包路径的日志,spring,mq,dubbo,swagger。。。一堆日志,这不是我想看到的,于是自定义包路径,这个探索的过程比较漫长,就不废话了,直接最终的结果,解决输出两边的问题和上面第一个错:

log4j.rootLogger=WARN,A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t] [%c]-[%p] %m%n
#这里配置是自定义的包路径日志级别,只要这些就行
log4j.logger.xxx.xxx.xxx=INFO
log4j.logger.xxx.xxx.xxx=ERROR
#下面注释的这些是和上面rootLogger一起配置导致输出两遍,最终选择注释点这里日志正常
#log4j.appender.xxx=org.apache.log4j.ConsoleAppender
#log4j.appender.xxx.layout=org.apache.log4j.PatternLayout
#log4j.appender.xxx.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%t] [%c]-[%p] %m%n

我这里没有配置输出到文件,切割,因为做了catalina.out切割输出,看这一个文件就够了

猜你喜欢

转载自blog.51cto.com/wangguangshuo/2498074
今日推荐