问题

项目升级zookeeper jar包,额外引入了slf4j-log4j12.jar,和已经存在得log4j-over-slf4j.jar冲突

原因

slf4j-log4j12.jar和log4j-over-slf4j.jar是针对slf4j日志接口的两种实现,如果两个都存在,则不知道具体使用哪个实现,所以需要排查一个。但是只引入slf4j-log4j12.jar这个jar又会出现找不到org.apache.log4j.Level这个类,所以将slf4j-log4j12.jar排除即可。

排除代码如下:

  1. <dependency>
  2. <groupId>org.apache.zookeeper</groupId>
  3. <artifactId>zookeeper</artifactId>
  4. <version>3.5.5</version>
  5. <exclusions>
  6. <exclusion>
  7. <groupId>org.slf4j</groupId>
  8. <artifactId>slf4j-log4j12</artifactId>
  9. </exclusion>
  10. </exclusions>
  11. </dependency>