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.jar
, slf4j-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。