【发布时间】:2022-12-09 22:04:36
【问题描述】:
从 JDK8 移动到 JDK11 后,我得到“SLF4J:未找到 SLF4J 提供程序”并且没有记录。 使用 Maven 和 IntelliJ。
在 JDK8 中,我在 pom.xml 中有这些,它们都运行良好。
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.7</version>
</dependency>
我环顾四周并按照提示添加了 slf4j18-impl 但我仍然遇到同样的问题。这就是它现在在 pom.xml 中的样子:
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j18-impl</artifactId>
<version>2.18.0</version>
</dependency>
并且这种代码在 JDK7 中有效但在 JDK11 中无效
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestOutput {
private static final Logger LOG = LoggerFactory.getLogger(TestOutput.class);
public static void tryToLog() {
LOG.info("Hello world!");
}
}
【问题讨论】:
标签: java logging log4j2 slf4j java-11