SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”

我的应用程序将被部署在tcServer和WebSphere 6.1上。 此应用程序使用ehCache,因此需要slf4j作为依赖项。 因此,我已经将slf4j-api.jar(1.6)jar添加到我的war文件包中。

该应用程序在tcServer中正常工作,除了以下错误:

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. 

但是,当我在WebSphere中部署时,我得到一个java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder

我已经检查了两个应用程序服务器的类path,没有其他的slf4j jar。

有没有人有任何想法可能发生在这里?

我与WebSphere 6.1有同样的问题。 正如Ceki所指出的那样,WebSphere使用了大量的jar,其中一个指向slf4j的旧版本。

No-Op回滚只发生在slf4j -1.6+之内,所以比这更老的东西会抛出一个exception并停止你的部署。

SLf4J站点有一个文件解决这个问题。 我跟着那个,把slf4j-simple-1.6.1.jar和我已经有的slf4j-api-1.6.1.jar一起添加到了我的应用程序中。

这解决了我的问题。 希望能帮助有这个问题的人。

这是从谷歌search到这里的人。

如果你使用maven,只需添加以下内容

  <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</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> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.6.4</version> </dependency> 

您需要在类path中添加以下jar文件: slf4j-simple-1.6.2.jar 。 如果你没有,请下载。 请参阅http://www.slf4j.org/codes.html#multiple_bindings

把文件slf4j-log4j12-1.6.4.jar放在类path中就行了。

如果你使用maven来进行依赖pipe理,那么你可以在pom.xml中添加下面的依赖项

 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.5.6</version> </dependency> 

对于非Maven用户只需下载该库并将其放入您的项目类path。

在这里你可以看到细节: http : //www.mkyong.com/wicket/java-lang-classnotfoundexception-org-slf4j-impl-staticloggerbinder/

只需将其添加到您的pom.xml中

 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.21</version> </dependency> 

SLF4j是各种日志框架的抽象。 因此,除了使用slf4j之外,还需要在类path中包含任何日志logging框架(如log4j或logback(etc))。
有一个想法请参阅http://logback.qos.ch/manual/introduction.html中的;第一个婴儿步骤

我遇到这个问题,当我得到以下错误:

 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. 

当我在我的libs使用slf4j-api-1.7.5.jar时。

尽pipe我尝试了整个build议的补充jar,比如slf4j-log4j12-1.7.5.jarslf4j-simple-1.7.5 ,错误信息仍然存在。 当我将slf4j-jdk14-1.7.5.jar添加到java库时,问题终于解决了。

获取整个slf4j包在http://www.slf4j.org/download.html

Slf4j是基础日志框架(如log4j,logback,java.util.logging)的外观。

为了连接底层框架,slf4j使用绑定。

  • log4j – slf4j-log4j12-1.7.21.jar
  • java.util.logging – slf4j-jdk14-1.7.21.jar等

如果绑定jar被遗漏,上面的错误将被抛出。 你可以下载这个jar并把它添加到classpath中。

对于maven依赖,

 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version> </dependency> 

除了slf4j-log4j12-1.7.21.jar之外,这个依赖项还会把slf4j-api-1.7.21.jar和log4j-1.2.17.jar一起插入你的项目

参考: http : //www.slf4j.org/manual.html

哈哈,有时候,我们应该看到警告的提示。 SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 。 在网站上,您可以searchreasion为什么发生此警告。
在类path中放置slf4j-nop.jar slf4j-simple.jar,slf4j-log4j12.jar,slf4j-jdk14.jar或logback-classic.jar中的一个(并且只有一个)应该可以解决问题。

compile "org.slf4j:slf4j-api:1.6.1" compile "org.slf4j:slf4j-simple:1.6.1"

将上面的代码添加到您的build.gradle或相应的代码到maven项目中的pom.xml

在Websphere的情况下,你有一个老版本的slf4j-api.jar,1.4.x. 或1.5.x躺在某处。 您在tcServer上观察到的行为(故障切换到NOP)发生在slf4j版本1.6.0和更高版本上。 确保您在所有平台上都使用slf4j-api-1.6.x.jar,并且在类path中没有放置较早版本的slf4j-api。

请添加以下依赖关系到POM来解决此问题。

 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.25</version> <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> 

我正在一个项目Struts2 + Spring中工作。 所以它需要依赖slf4j-api-1.7.5.jar

如果我运行该项目,我得到了错误

无法加载类“org.slf4j.impl.StaticLoggerBinder”

我通过添加slf4j-log4j12-1.7.5.jar来解决我的问题。

所以在你的项目中添加这个jar来解决这个问题。

我知道这个post有点老了,但万一遇到这个问题:

将slf4j-jdk14-XXXjar添加到您的CLASSPATH(其中XXX是版本号 – 例如slf4j-jdk14-1.7.5.jar)。

HTH彼得

根据SLF4J官方文件

无法加载类org.slf4j.impl.StaticLoggerBinder

当org.slf4j.impl.StaticLoggerBinder类无法加载到内存中时,会报告此警告消息。 如果在类path上找不到合适的SLF4J绑定,就会发生这种情况。 在类path中放置 slf4j-nop.jar,slf4j-simple.jar,slf4j-log4j12.jar,slf4j-jdk14.jar或logback-classic.jar中的一个(并且只有一个)应该可以解决问题。

简单地将这个jar和slf4j api.jar一起添加到你的类path来完成任务。 祝你好运

我使用Jena,并且将相关性依赖添加到pom.xml中

 <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.0.13</version> </dependency> 

我尝试添加slf4j-simple,但它只是消失了“SLF4J:无法加载类”org.slf4j.impl.StaticLoggerBinder“”错误,但logback-classic显示更多详细信息。

官方文件

我解决它添加这个库:slf4j-simple-1.7.25.jar你可以下载这个官方网站https://www.slf4j.org/download.html

该解决scheme在其官方网站上显示:

无法加载类org.slf4j.impl.StaticLoggerBinder

当org.slf4j.impl.StaticLoggerBinder类无法加载到内存中时,会报告此警告消息。 如果在类path上找不到合适的SLF4J绑定,就会发生这种情况。 在类path中放置slf4j-nop.jar slf4j-simple.jar,slf4j-log4j12.jar,slf4j-jdk14.jar或logback-classic.jar中的一个(并且只有一个)应该可以解决问题。 SINCE 1.6.0从SLF4J版本1.6开始,在没有绑定的情况下,SLF4J将默认为无操作(NOP)logging器实现。 如果你负责打包一个应用程序而不关心日志logging,那么把slf4j-nop.jar放在应用程序的类path上就会摆脱这个警告信息。 请注意,embedded式组件(如库或框架)不应该声明对任何SLF4J绑定的依赖关系,而只依赖于slf4j-api。 当一个库声明一个SLF4J绑定的编译时间依赖性时,它会将该绑定强加给最终用户,从而否定SLF4J的目的。

解决scheme:我已经添加到我的项目使用intellij的maven研究,我select了slf4j-jdk14.jar。