两个log4j导致的错误现象

1. 出错提示

 

log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a "org.apache.log4j.Appender" variable.
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by
log4j:ERROR [org.apache.catalina.loader.StandardClassLoader@15a3d6b] whereas object of type
log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by [WebappClassLoader
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@f9c40
].
log4j:ERROR Could not instantiate appender named "S".
Loading jar:file:/scionDevTool/tomcat/mes-portal-server-0.3.4/liferay-portal-5.2.3/tomcat-5.5.27/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/system.properties

 

2.原因是 liferay/common/lib/log4j-1.2.9.jar

另外在应用程序有(pom.xml)

 

      <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.4.2</version>
        </dependency>

 

依赖log4j

 

3.解决方法

 

 

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.4.2</version>
    
            <exclusions>
                <exclusion>
                    <artifactId>log4j</artifactId>
                    <groupId>log4j</groupId>
                </exclusion>
            </exclusions>

  
        </dependency>

 

 

问题的原因是项目中引入的依赖中存在多个SLF4J的实现,导致冲突。SLF4J是一个门面日志接口,真正的实现有很多种。当项目中引入的依赖中有多个SLF4J实现时,就会出现冲突。这个问题可以通过排除冲突的依赖或者调整依赖的版本来解决。 在引用[1]中提到了这个问题的原因是项目中引入的依赖有多个slf4j的实现,而在引用[2]和引用[3]中也提到了类似的错误信息。具体来说,在引用[2]中显示了两个SLF4J的绑定,一个是logback-classic,另一个是slf4j-log4j12。而在引用[3]中也显示了两个SLF4J的绑定,一个是slf4j-log4j12,另一个是logback-classic。 解决这个问题的方法是排除冲突的依赖或者调整依赖的版本。可以通过在项目的pom.xml文件中排除冲突的依赖,或者更新依赖的版本来解决这个问题。具体的操作可以参考SLF4J官方文档中关于解决多个SLF4J绑定的说明[4]。 综上所述,Class path contains multiple SLF4J bindings的问题是由于项目中引入的依赖中存在多个SLF4J的实现导致的。可以通过排除冲突的依赖或者调整依赖的版本来解决这个问题。 [1] 麦田怪圈(Crop Circle)是指在麦田或其它田地上,通过某种未知力量(大多数怪圈是人类所为)把农作物压平而产生出来的几何图案。 [2] 人为说一般认为,麦田圈是用木板压成的。木板两头系上绳子形成圈套,在制作时,一脚踩在木板上拖动木板压倒麦子,并拉着细绳与圆心保持固定的距离,逐渐就可以形成一个圆圈。 [3] 自然形成说认为麦田怪圈的成因还未被人类发现。就像雷电,古时候人类也是以为是雷神电母做的,对于麦田圈中经常出现人文信息的现象,他们认为这只是人们“先入为主”造成的错觉。 [4] 磁场说认为,磁场中有一种神奇的移动力,可产生一股电流,使农作物“平躺”在地面上。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值