9

我收到错误。我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

4 回答 4

15

首先。关于依赖关系。

为了添加 SLF4J,您必须在 pom.xml 中放置一个且仅一个这些依赖项。这取决于您选择使用什么实现。您在 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: Failed to load class "org.slf4j.impl.StaticLoggerBinder"。那么您将面临来自 m2e 的错误。

Eclipse Juno 和 Indigo 在使用捆绑的 maven 版本 (m2e) 时不会抑制消息 SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder"。此行为从 m2e 版本 1.1.0.20120530-0009 及更高版本开始存在。

虽然,这被指示为错误,您的日志将正常保存。在修复此错误之前,突出显示的错误仍将存在。在m2e 支持站点中了解更多信息。

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

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

于 2013-04-26T18:05:41.060 回答
4

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

请注意只有两个 Maven 部门。没有明确的 log4j dep,它是自动加载的。

此外(这花了我 1 小时 14 分钟)一些版本的 sl4j 不稳定,这很重要。1.8-beta 版(是的.. beta)不起作用。所以我使用了 1.7.13 并且它有效。

所以,检查 maven deps,它应该是这样的:

<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

干杯!

于 2018-10-09T12:24:05.313 回答
1

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

于 2013-04-24T11:35:26.493 回答
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();打印任何东西。

于 2013-04-24T11:39:54.347 回答