解决slf4j 冲突

简介: 可能出现的异常:发现配置的logback.xml文件没有起作用,于是分析了一下启动log,发现log中出现了SLF4J冲突异常:SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”原因分

可能出现的异常:

发现配置的logback.xml文件没有起作用,于是分析了一下启动log,发现log中出现了SLF4J冲突异常:

  1. SLF4J: Class path contains multiple SLF4J bindings.
  2. SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”

原因分析:

既然是冲突,那可能就是项目中依赖了多个不同版本的slf4j类库,那如何分析到底是哪几个类库依赖了slf4j呢?我们可以使用dependency:tree命令:

$ mvn dependency:tree
AI 代码解读

解决:

经过依赖tree的分析,发现Zookeeper和Dubbo类库各自都引用了slf4j类库,于是使用<exclusions>标签排除掉传递依赖。

  <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.8.4</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.6</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
AI 代码解读

其它各种依赖冲突都可以使用这种方式解决。

目录
打赏
0
0
0
0
21
分享
相关文章
解决依赖冲突中NoSuchMethodError错误的方法探索
解决 `NoSuchMethodError`错误是一个需要精细操作的过程,它要求开发者不仅要有扎实的编程基础,还需要对项目依赖关系有深刻的理解。通过以上探讨的策略,希望能帮助你有效地解决这一问题。
183 14
解决SLF4J和logback报错SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.
解决SLF4J和logback报错SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.
SpringBoot中使用SLE4J日志框架启动报错:SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinde
SpringBoot中使用SLE4J日志框架启动报错:SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinde
580 1
【MapStruct】引入MapStruct之后,项目启动java:找不到符号
SpringBoot项目,在引入MapStruct之前项目启动和运行的好好的,按照MapStruct官网推荐的方法引入MapStruct之后,本来正常的项目居然启动不了了。
657 1
【MapStruct】引入MapStruct之后,项目启动java:找不到符号
Lombok @Slf4j log对象没有info等方法 不可用解决方法
Lombok @Slf4j log对象没有info等方法 不可用解决方法
571 0
Slf4j 包老冲突, 到底怎么解决?
在进行 Java 开发时,通常我们会选择 Slf4j 作为日志门面,但日志实现却不尽相同。如果系统运行中同时存在多个日志实现,就会出现类似下图的 Warning。
355 0
Slf4j 包老冲突, 到底怎么解决?
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等