使用 Logback,但 Log4j 开始显示 WARN no Appenders
我正在使用logback进行日志记录,但是它一直在工作;前几天我开始收到警告
log4j:WARN 找不到 logger 的追加器 (org.apache.axis.i18n.ProjectResourceBundle)。log4j:警告 请正确初始化 log4j 系统。
我没有使用log4j,也从未使用过这个项目。我的资源文件夹中有一个 logback.xml。
关于为什么这个警告开始出现的任何想法?
我正在使用logback进行日志记录,但是它一直在工作;前几天我开始收到警告
log4j:WARN 找不到 logger 的追加器 (org.apache.axis.i18n.ProjectResourceBundle)。log4j:警告 请正确初始化 log4j 系统。
我没有使用log4j,也从未使用过这个项目。我的资源文件夹中有一个 logback.xml。
关于为什么这个警告开始出现的任何想法?
您必须使用使用 log4j 的库。你能发布更多关于你的项目的信息吗?
您可能应该将log4j桥放在类路径上。在此处阅读更多内容: http://www.slf4j.org/legacy.html
您要查看的 jar 是 log4j-over-slf4j。它将桥接log4j API以实际调用您的slf4j API实现(在您的情况下 - logback)。
如果您使用Maven来构建项目,那么它可能就像将
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.7.7</version>
</dependency>
在依赖项中。
排除库(如果需要)将以这种方式完成(这假设我们正在谈论您提到的jar中的传递依赖关系):
<dependency>
<groupId>org.swift.common</groupId>
<artifactId>jira-soap</artifactId>
<version>4.4.0</version>
<exclusions>
<exclusion>
<groupId>...</groupId>
<artifactId>...</artifactId>
</exclusion>
</exclusions>
</dependency>
我花了一些时间才找出答案,因为消息是log4j:WARN 找不到记录器的附加器
我试图排除log4j,我尝试了log4j-over-slf4j。
然后我运行了mvn dependency:tree,最后发现mye commons-configuration实际上是在使用commons-logging。
[INFO] +- commons-configuration:commons-configuration:jar:1.9:compile
[INFO] | \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] +- ch.qos.logback:logback-classic:jar:1.0.13:compile
[INFO] | +- ch.qos.logback:logback-core:jar:1.0.13:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.5:compile
[INFO] +- org.slf4j:log4j-over-slf4j:jar:1.7.6:compile
[INFO] \- org.apache.commons:commons-lang3:jar:3.1:compile
这成了我的解决方案。
<!-- logging with logback (and slf4j)-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.0.13</version>
</dependency>
<!-- had a dep in commons-configuration -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.6</version>
</dependency>