- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Java Maven 项目,其依赖项包括 slf4j
及其 log4j 适配器
。我根据 http://mvnrepository.com 将 log4j
、slf4j-log4j12
和 slf4j-api
的版本管理为其最新版本。特别是 1.2.17 的 log4j
版本远远超过 1.2.12,但我仍然收到错误
SLF4J: This version of SLF4J requires log4j version 1.2.12 or later.
See also http://www.slf4j.org/codes.html#log4j_version
我完全不清楚。
我的 Maven 依赖管理如下所示:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.jena</groupId>
<artifactId>apache-jena-libs</artifactId>
<type>pom</type>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
</dependencies>
</dependencyManagement>
如何消除警告?
P.S.:我还收到一个 java.lang.NoSuchMethodError: org.apache.log4j.Logger.isTraceEnabled()
。
P.P.S.:由于您的评论,我记得该程序有一个“lib”文件夹,该文件夹不包含在 Maven 的类路径中,而是包含在 Eclipse 本身的类路径中,因此冲突的依赖项必定位于该文件夹中。抱歉,我完全忘记了,我猜这是我将 Maven 与 lib 文件夹混合在一起的错。我想我必须尝试将尽可能多的库转换为 Maven 依赖项。但奇怪的是,即使我编辑“Order and Export”将 Maven 依赖项放在顶部,问题仍然出现。
最佳答案
slf4j-log4j12 中的
StaticLoggerBinder
代码很早就加载,它会执行检查以确定 TRACE
级别在 log4j 中是否可用。这是代码:
private StaticLoggerBinder() {
loggerFactory = new Log4jLoggerFactory();
try {
Level level = Level.TRACE;
} catch (NoSuchFieldError nsfe) {
Util.report("This version of SLF4J requires log4j version 1.2.12 or later."+
" See also http://www.slf4j.org/codes.html#log4j_version");
}
}
对我来说,它似乎非常密封。
可能是某些其他依赖项正在引入或实际上嵌入了早期版本的 log4j。已知某些 *-standalone.jar 文件可以执行此操作。
在部署时检查您的类路径。您是否在应用程序服务器中部署?服务器类路径上是否有旧版本的 log4j?在 java 认可的路径中?
关于java - "This version of SLF4J requires log4j version 1.2.12"log4j 1.2.17 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15969739/
我是一名优秀的程序员,十分优秀!