无法加载类“org.slf4j.impl.StaticLoggerBinder”——哪个类路径?

问题描述 投票:0回答:4

我的

pom.xml
仅包含一个对SLF4J的引用:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-jdk14</artifactId>
        <version>1.5.10</version>
    </dependency>

我收到此错误:

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

SLF4J:默认为无操作(NOP)记录器实现 SLF4J:

请参阅 http://www.slf4j.org/codes.html#StaticLoggerBinder 了解更多信息 详细信息。

我检查了该 URL,确实它提供了一种解决方案:“放置一个(且仅一个)slf4j-nop.jar、slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar 或 logback-classic。在类路径上运行 jar 应该可以解决问题。”

我的问题是:哪个类路径?

  • 系统的%CLASSPATH%? (我没有!我需要专门为此创建一个)
  • Eclipse 的项目
    .classpath
    ? (我想我尝试过这个但没有帮助)
  • 其他?

我在here上找到了很多关于这个主题的帖子,但他们都引用了相同的答案:“将......放在类路径

哪个类路径?

slf4j
4个回答
23
投票
首先,为了添加 SLF4J,您应该将这些依赖项中的

ONE 且仅 ONE 放入您的 pom.xml 中。这取决于您选择使用什么实现。您在 pom.xml 中添加的每个依赖项都会自动添加到类路径中。只要使用Eclipse就不需要修改系统的%CLASSPATH%吗?

<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>

最后但并非最不重要的一点是,您将遇到错误 SLF4J: 无法加载类“org.slf4j.impl.StaticLoggerBinder”。

Eclipse Juno 和 Indigo 在使用捆绑的 maven 版本(m2e)时,不会抑制消息 SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。此行为从 m2e 版本 1.1.0.20120530-0009 及更高版本开始出现。

尽管这被指示为错误,但您的日志将正常保存。在修复此错误之前,突出显示的错误将仍然存在。有关此内容的更多信息,请访问

m2e 支持网站

为了抑制此消息,当前可用的解决方案是使用外部 Maven 版本而不是 Eclipse 的捆绑版本。您可以在下面的问题中找到有关此解决方案以及有关此错误的更多详细信息。

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


0
投票
问题:

我正在使用

Maven

 来管理我的依赖项。就我而言,我收到此错误的原因是 
因为我的系统中的类路径上有多个 slf4j-simple
 jar
SLF4J 文档 指出:

将 slf4j-nop.jar slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar 或 logback-classic.jar 中的一个

(且仅一个)放置在类路径上应该可以解决问题。

解决方案:

    在文件系统中搜索以下 jar 并删除除
  • .m3
     中的副本之外的所有副本:
    
    
      slf4j-nop
    1. slf4j-简单
    2. slf4j-log4j12
    3. slf4j-jdk14
    4. logback-经典

0
投票
如果你使用maven,你需要添加这个依赖:

<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.2</version> </dependency>
如果您还使用 Intellij,则需要检查 ch.qos.logback 是否已提取到输出根目录。


0
投票
如果您使用

gradle

,请在 build.gradle.kts 中添加以下依赖项

dependencies { implementation("ch.qos.logback:logback-classic:1.2.11") }
    
© www.soinside.com 2019 - 2024. All rights reserved.