如何修复“SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。”

新手上路,请多包涵

我有一个具有以下错误消息的应用程序:

 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.

在我尝试为应用程序运行任何脚本后出现此消息。我发现,正如它所说,它不会创建日志,所以当出现问题时我空手而归。

我在最接近 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

我是否正在尝试将其添加到类路径中?

如果需要,您可以通过执行以下操作来重现此问题:重现行为的步骤:将新版本的 OpenDJ 安装到 CentOS 或 Amazon Linux2 EC2 实例上。安装 java 1.8.0 特别是 java-1.8.0-openjdk 在任何配置中安装服务器,然后运行状态脚本。

预期行为 日志应该生成并且不会出现警告消息。

原文由 Dean013 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 709
1 个回答

首先,你应该看看这里: https ://www.slf4j.org/codes.html

此外,您可以尝试将这些 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>

注意:考虑到 Maven 依赖版本正在更新,那么也许您更喜欢使用最新版本的依赖(例如 log4j-api 是 2.17.0)

另一方面,这篇文章也可以帮助你: https ://mkyong.com/java/log4j2-failed-to-load-class-org-slf4j-impl-staticloggerbinder/

原文由 mononoke83 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题