springboot项目中使用kafka时报错如下:
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/E:/maven/repo/ch/qos/logback/logback-classic/1.1.11/logback-classic-1.1.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/E:/maven/repo/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
项目本来使用的是logback来写日志,后来有新的需求,需要用kafka,然后我就在Maven中引入了kafka的jar,整个项目都开发完了,放到生产环境了,然后突然有一天我说去看一下日志,然后就尴尬,很久都没有日志了。
首先,我去查了日志服务器,刚开始以为是日志服务器满了,但是日志服务器并没有满;
然后,我在测试环境中去看,测试环境中也没有日志,我也看了测试环境的日志服务器也没有满,然后我就把服务重启了,以为重启就好了,可是并没有好;
最后,我在测试环境中发现,原来是jar包冲突了,找了很久原来是slf4j和logback冲突了,但是我的Maven中的pom.xml文件中并没有引入slf4j啊,感觉很奇怪,后来查询资料发现kafka自动会引入slf4j!
然后我在引入kafka的jar包的地方去掉slf4就好了,最终的依赖写法如下:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.11</artifactId>
<version>0.8.2-beta</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>0.8.2-beta</version>
</dependency>