java - SLF4J:加载类 "org.slf4j.impl.StaticLoggerBinder"失败。在一个 Maven 项目中

标签 java maven log4j slf4j

我依赖于 SLF4J。我收到此错误:

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.

这是我的 Maven 条目:

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

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.6</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
    </dependency>

问题出在哪里?


编辑:没有 log4j 依赖我得到以下异常

Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
    at org.apache.bval.jsr303.ConfigurationImpl.<clinit>(ConfigurationImpl.java:50)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:228)
    at org.apache.bval.jsr303.ApacheValidationProvider.createGenericConfiguration(ApacheValidationProvider.java:66)
    at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:173)
    at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:50)
    at com.daimler.zv9.basic.entity.AbstractEntity.<clinit>(AbstractEntity.java:73)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:228)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:195)
    at java.lang.Class.forNameImpl(Native Method)
    at java.lang.Class.forName(Class.java:168)

EDIT2:这是我得到的一个示例 MAVEN 树

[INFO] com.myCompany.abc:ABC_Document:ejb:0.0.1-SNAPSHOT
[INFO] +- com.myCompany.abc:ABC_Basic:jar:0.0.1-SNAPSHOT:compile
[INFO] +- com.myCompany.iap:javax.j2ee:jar:5.0.0:provided
[INFO] +- com.myCompany.iap:logging:jar:5.0.0:provided
[INFO] +- com.myCompany.iap:util:jar:5.0.0:provided
[INFO] +- junit:junit:jar:4.8.2:test
[INFO] +- javax.servlet:jstl:jar:1.2:provided
[INFO] +- org.slf4j:slf4j-api:jar:1.6.6:compile
[INFO] +- org.slf4j:slf4j-simple:jar:1.6.6:compile
[INFO] \- org.mockito:mockito-all:jar:1.9.0:test

最佳答案

我假设您使用 Eclipse 作为您的开发环境。

Eclipse Juno、Indigo 和 Kepler 在使用捆绑的 maven 版本 (m2e) 时,不会抑制消息 SLF4J: Failed to load class "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

关于java - SLF4J:加载类 "org.slf4j.impl.StaticLoggerBinder"失败。在一个 Maven 项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12458469/

相关文章:

java - 重新打包 war 而不使用 mvn package 仅在少数依赖项目上运行验证

java - 在多模块 Maven 项目中,我在哪里存储集成功能(文件)?

java - 将 log4j.properties 移出 jar 导致 log4j 警告(不生成日志)

java - 轻松禁用小程序的 log4j?

java - 调用方法 "SecurityUtils.getSubject();"是否总是会命中 redis 数据库?

java - 从 CSV 文件自动创建数组时,索引 1 超出长度 1 的范围错误

java - java.nio 的非阻塞选择问题

java - 添加 spring ws security 后 Weblogic 部署失败

java - 如何以编程方式设置 Spring log4j 属性文件路径

Java - 是 Class<? 类型的数组扩展 MyType> 可能吗?