解决slf4j 冲突

可能出现的异常:

发现配置的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>

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

时间: 2024-09-19 03:41:18

解决slf4j 冲突的相关文章

如何在Oracle中使用临时表解决表冲突

本文介绍一个Oracle里面使用临时表解决表冲突的例子,并附创建临时表的例子 平台:windows 2000 server sp3 数据库:Oracle 9.0.1.1.1 现场描述:用户抱怨不能同时对多个单位进行数据处理,执行出现的错误信息为: SQL> exec sp_hyb_da_ryxx_dwbh_test('331028') BEGIN sp_hyb_da_ryxx_dwbh_test('331028'); END; *ERROR 位于第 1 行: ORA-02055: 分布式更新操作

MVC解决更新冲突问题

首先,我们应该把数据提交方法做到一个数据库基类里,就像这样  public abstract class dbBase     {   public virtual void SubmitChanges()         {             ChangeSet cSet = db.GetChangeSet();             if (cSet.Inserts.Count > 0                 || cSet.Updates.Count > 0       

Eclipse中如何使用SVN及解决版本冲突

如何在Eclipse里安装Subclipse插件: 方法一:从Eclipse Marketplace里面下载 具体操作:打开Eclipse --> Help --> Eclipse Marketplace --> 在Find中输入subclipse搜索 --> 找到subclipse点击install 方法二:从Install New Software里下载 具体操作:打开Eclipse --> Help --> Install New Software -->

再谈CSS优先权:old9解决优先权冲突的观点

优先权问题其实就是一个冲突解决的问题,当同一个元素(或内容)被CSS选择符选中时,就要按照优先权取舍不同的CSS规则,这其中涉及到的问题其实很多. 首先就是CSS规则的specificity(特殊性),CSS2.1有一套关于specificity的计算方式,用一个四位的数字串(CSS2是三位)来表示,最终specificity越高的规则越特殊,在优先级判定时也就越有优势.关于specificity的具体计算在各种情况下的数字加成有如下一般规则: ◎ 每个ID选择符(#someid),加 0,1,

PowerShell中运行CMD命令的技巧总结(解决名称冲突和特殊字符等问题)_PowerShell

引言 我从老旧的 CMD.EXE 命令行换到优秀的 POWSERSHELL.EXE 已经有一段时间啦.您可能知道新的 Windows PowerShell 可以运行任何旧命令.不过有些旧命令的名称或语法可能会产生问题.但这都不是事儿. 麻烦 1:名称冲突 PowerShell 的 cmdlet 别名和旧命令的名称有冲突是个常见的问题.比如说您喜欢的服务控制命令 SC.EXE.SC.EXE 非常灵活!我能理解您为什么喜欢它(不要为用 NET.EXE 管理服务找借口).如果您想查看 SMB Serv

如何解决hash冲突_C#教程

1)冲突是如何产生的? 上文中谈到,哈希函数是指如何对关键字进行编址的规则,这里的关键字的范围很广,可视为无限集,如何保证无限集的原数据在编址的时候不会出现重复呢?规则本身无法实现这个目的.举一个例子,仍然用班级同学做比喻,现有如下同学数据 张三,李四,王五,赵刚,吴露..... 假如我们编址规则为取姓氏中姓的开头字母在字母表的相对位置作为地址,则会产生如下的哈希表 位置 字母 姓名 0 a 1 b 2 c ... 10    L     李四 ... 22 W 王五,吴露 .. 25  Z 

iP冲突是怎么解决?iP冲突解决方法

分析原因:为什么会IP相冲突? 因在你同一个局域网中有一个与你一个的IP地址了,如A电脑是 192.168.1.2而你的也是192.168.1.2这样就冲突了 解决办法 右击桌面"网上邻居"=>"属性"-网络连接属性-"此连接使用下列项目"这个框里找到internet协议(tcp/ip)-属性按钮 然后就弹出IP地址.子网掩码.网关等等

[fixed] 解决 slf4j + log4j eclipse 可以打印日志,而在云服务器上不能打印

今天发现服务上没有打印任何日志,而log4j已经设置为了INFO 很奇怪,在eclipse中是可以打印的,也能输出到单独的日志中 后来发现原来是冲突了 把log4j注释掉即可 保留slf4j即可  

Oracle中使用临时表解决表冲突的例子

平台:windows 2000 server sp3 数据库:Oracle 9.0.1.1.1 现场描述:用户抱怨不能同时对多个单位进行数据处理,执行出现的错误信息为: SQL> exec sp_hyb_da_ryxx_dwbh_test('331028') BEGIN sp_hyb_da_ryxx_dwbh_test('331028'); END; *ERROR 位于第 1 行: ORA-02055: 分布式更新操作失效:要求回退 ORA-06502: PL/SQL: 数字或值错误 : 字符串