我有一个具有以下错误消息的应用程序:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Run Code Online (Sandbox Code Playgroud)
在我尝试为应用程序运行任何脚本后,会出现此消息。我发现,正如它所说,它不会创建日志,因此当出现故障时我会空手而归。
我在最接近 CentOS 和 Redhat 的 Amazon Linux 2 中运行它。
我找到了以下资源: 这个问题在这里 得到解决:http : //www.slf4j.org/codes.html#StaticLoggerBinder我可以从这里得到我需要的 jar:https : //repo1.maven.org/maven2/ org/slf4j/slf4j-simple/1.6.2/slf4j-simple-1.6.2.jar 将这个 jar 放入我的应用程序的 /lib 后,没有任何变化。
其他文章描述了将此文件添加到类路径。在 Linux 中,我得到了这个:
# java -classpath /opt/opendj/lib/slf4j-simple-1.6.2.jar org.slf4j.impl.StaticLoggerBinder
Error: Could not find or load main class org.slf4j.impl.StaticLoggerBinder
# java -jar /opt/opendj/lib/slf4j-simple-1.6.2.jar org.slf4j.impl.StaticLoggerBinder
no main manifest attribute, in /opt/opendj/lib/slf4j-simple-1.6.2.jar
Run Code Online (Sandbox Code Playgroud)
我是否试图将其添加到类路径中?
如果需要,您可以通过执行以下操作来重现此问题: 重现行为的步骤:在 CentOS 或 Amazon Linux2 EC2 实例上安装新版本的 OpenDJ。安装java 1.8.0 特别是java-1.8.0-openjdk 在任何配置中安装服务器,然后运行状态脚本。
预期行为 应生成日志并且不会显示警告消息。
您可以尝试将这些 SLF4J maven 依赖项添加到您的 pom 中,并让我知道这是否有效:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.13.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.13.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.13.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
或者你也可以看看这篇文章:https : //mkyong.com/java/log4j2-failed-to-load-class-org-slf4j-impl-staticloggerbinder/