我们使用常春藤来管理多项目java应用程序,最近这个错误在我们构建时开始出现。是什么导致了这个?
答案 0 :(得分:4)
通过将以下行添加到ivy.xml中依赖项部分的末尾来修复此问题:
<dependencies>
<exclude module="log4j-over-slf4j" />
</dependencies>
为什么这是一个问题?
答案 1 :(得分:3)
看起来log4j桥没有实现log4j的完整接口。如果您仍在使用直接log4j调用,则需要slf4j bridge jar和log4j jar
在您的情况下,您似乎排除了桥接jar,因此所有slf4j调用都直接转到log4j而不是桥接。
如果你的代码通过xml文件调用log4j,这将有效。但是,如果您的代码以编程方式调用log4j初始化,则此桥将无法正常工作
答案 2 :(得分:1)
我知道这是一个非常古老的问题,但我想分享对我来说很好的事情。如果对于彼此相互依赖的两个项目有不同的slf4j-log4j *工件,例如spring数据jpa和spring MVC,就会发生这种情况。保持一致,甚至更好地拥有父母pom。在我的情况下,我在我的spring数据jpa项目上有slf4j-log4j12,在我的spring MVC上有slf4j-log4j13。
答案 3 :(得分:-1)
从pom.xml
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j13</artifactId>
<version>
</dependency>
添加(或保留)以下内容:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
无论您何时看到有关Log4j的编译时错误,请添加以下导入:
import org.apache.log4j.Logger;