【发布时间】:2020-03-20 08:09:30
【问题描述】:
我在我的 maven 项目中使用 log4j 依赖项。但是我收到了与 slf4j 相关的警告。但是我的 pom 中只有 log4j 依赖项。
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>compile</scope>
</dependency>
我查看了http://www.slf4j.org/codes.html#StaticLoggerBinder 并尝试添加
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.29</version>
<scope>test</scope>
</dependency>
到代码。但它没有用。有什么解释吗?
【问题讨论】:
-
你可能想要groupId
org.apache.logging.log4j,这个是2012年的 -
@boot-and-bonnet 它说当我更改 groupId 时没有这样的依赖
-
这应该是最新的 - search.maven.org/artifact/org.apache.logging.log4j/log4j (2.12.1)
-
选项 1: 要摆脱错误,只需更改
slf4j-log4j12依赖范围即可编译。 选项 2: 如果您只想使用 log4j,请确保您的其他依赖项没有拉 slf4j-api jar(即传递依赖项)。 -
@Ramu 如果依赖项传递地需要 SLF4J,那么你不能不把它拉进去;这将导致在执行期间至少抛出一个
NoClassDefFoundError。