解决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

解决:

经过依赖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>

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

目录
相关文章
|
设计模式 Java 程序员
日志框架Slf4j作用及其实现原理
日志框架Slf4j作用及其实现原理
136 0
|
2月前
|
Java Maven 开发工具
解决依赖冲突中NoSuchMethodError错误的方法探索
解决 `NoSuchMethodError`错误是一个需要精细操作的过程,它要求开发者不仅要有扎实的编程基础,还需要对项目依赖关系有深刻的理解。通过以上探讨的策略,希望能帮助你有效地解决这一问题。
116 14
|
Java
Lombok @Slf4j log对象没有info等方法 不可用解决方法
Lombok @Slf4j log对象没有info等方法 不可用解决方法
427 0
|
Java API 开发者
Slf4j使用原理|学习笔记
快速学习Slf4j使用原理
Slf4j使用原理|学习笔记
|
Java 应用服务中间件 数据格式
|
Java Spring
SpringCloud - WebMvcConfigurer & @EnableFeignClients 冲突之 getApplicationContext() 为 null 解决(二)
SpringCloud - WebMvcConfigurer & @EnableFeignClients 冲突之 getApplicationContext() 为 null 解决(二)
431 0
SpringCloud - WebMvcConfigurer & @EnableFeignClients 冲突之 getApplicationContext() 为 null 解决(二)
|
Java 测试技术 API
SLF4J日志桥接的应用
最近在给公司的测试部门开发一套自动化测试框架,为了是框架产生的测试报告更易于分析,我考虑将每一个用例与运行过程中产生的日志相关联,为了实现这样的效果,首先就需要统一项目的日志输出,那么具体怎么做呢? 一、JAVA世界的日志 在JAVA世界中,有非常多的日志框架,JCL、JUL、Log4j、Logba
208 0
|
Java Maven
Slf4j 包老冲突, 到底怎么解决?
在进行 Java 开发时,通常我们会选择 Slf4j 作为日志门面,但日志实现却不尽相同。如果系统运行中同时存在多个日志实现,就会出现类似下图的 Warning。
330 0
Slf4j 包老冲突, 到底怎么解决?
|
XML Java 数据库连接
slf4j-api、slf4j-log4j12、log4j以及Dom4j之间什么关系?
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,Hibernate用它来读写配置文件dom4j需要导入dom4j-full.jar包.和前三者有些相似,但其实并没有直接关系.