无法在java项目中加载类“org.slf4j.impl.StaticLoggerBinder”错误?

时间:2013-04-24 11:32:21

标签: java log4j

我收到Failed to load class "org.slf4j.impl.StaticLoggerBinder"错误。我想将记录器写入文件。所以我使用log4j.jar并使用apache tomcat服务器。

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.

4 个答案:

答案 0 :(得分:14)

首先。关于依赖性。

要添加SLF4J,您必须在pom.xml中添加 ONE 且仅 ONE 这些依赖项。这取决于您选择使用的实施方式。您在pom.xml中添加的每个依赖项都会自动添加到类路径中。如果下面的依赖项之一由另一个依赖项提供,那么您可以省略它。不要忘记,即使依赖项是由另一个依赖项提供的,您也必须只包含一个。请注意,我已从依赖项中省略了该版本。使用最新的。

<dependency>
   <groupId>ch.qos.logback</groupId>
   <artifactId>logback-classic</artifactId>
   <version></version>
</dependency>
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-log4j12</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>
<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-jdk14</artifactId>
   <version></version>
   <scope>compile</scope>
</dependency>

现在关于构建maven项目时遇到的恼人错误。如果只有上述依赖项中的一个后仍然得到SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。然后你面临来自m2e的错误。

当使用捆绑的maven版本(m2e)时,Eclipse Juno和Indigo不会抑制消息SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。此行为存在于m2e版本1.1.0.20120530-0009及之后。

虽然这表示为错误,但您的日志会正常保存。在修复此错误之前,突出显示的错误仍然存​​在。有关详情,请参阅m2e support site

当前可用的解决方案是使用外部maven版本而不是捆绑版本的Eclipse。您可以在下面的问题中找到有关此错误的此解决方案和更多详细信息,我认为这些错误描述了您所面临的相同问题。

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". error

答案 1 :(得分:2)

您需要将slf4j jar或依赖项添加到项目中

答案 2 :(得分:1)

手册中没有明确的示例说明如何一起使用log4j和sl4j。 但是有很多非正式的,我喜欢这个: http://www.javavillage.in/slf4j-with-log4j.php

注意只有两个行家部门。没有明确的log4j dep,它会自动加载。

(花费了我1小时14分钟),某些版本的sl4j不稳定,这很重要。版本1.8-beta(是的..beta)不起作用。所以我用1.7.13就能用了。

因此,检查Maven部门,应该像这样:

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

默认配置位置是资源文件夹。例如。主要来源:

project/src/main/resources

或进行测试:

project/src

干杯!

答案 3 :(得分:0)

请为您的项目导入slf4j-api-1.6.6.jar。 1.在java类中编写以下代码

private Logger logger = LoggerFactory.getLogger(this.getClass());

2.进口以下:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

3.现在你可以使用logger.info();打印任何东西。