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

时间:2016-10-11 11:33:48

标签: maven tomcat intellij-idea log4j slf4j

我在帖子中找不到解决方案后打开这篇帖子: Failed to load class "org.slf4j.impl.StaticLoggerBinder" error

我还在IntelliJ中打开了一个Maven项目,并在tomcat7插件中选择'redeploy'选项后出现以下错误:

  

SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。   SLF4J:默认为无操作(NOP)记录器实现SLF4J:   有关详细信息,请参阅http://www.slf4j.org/codes.html#StaticLoggerBinder   的信息。

在附件链接中,建议转到File->项目结构 - >工件和检查错误。这就是我所看到的: enter image description here

我在pom.xml文件中也有以下依赖项:

        <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.5.6</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.21</version>
        </dependency>

你能帮我找错吗?

3 个答案:

答案 0 :(得分:6)

也许有两个问题:

  1. 您的依赖项的版本不匹配
  2. 部署应用程序时出现的问题
  3. 为了重现你的错误,我创建了这个迷你程序:

    package de.so;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class DemoSlf4j
    {
        private static Logger logger = LoggerFactory.getLogger(DemoSlf4j.class);
    
        public static void main(String[] args)
        {
            logger.error("Start ...");
        }
    }
    

    在pom.xml中只使用这些依赖项(与您使用的相同):

    <dependencies>
        <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.5.6</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.21</version>
        </dependency>
    </dependencies>
    

    我收到了这些消息:

      

    SLF4J:类路径包含多个SLF4J绑定。 SLF4J:找到了   绑定   [JAR:文件:/ d:/Maven-Repo/org/slf4j/slf4j-log4j12/1.5.6/slf4j-log4j12-1.5.6.jar /org/slf4j/impl/StaticLoggerBinder.class]   SLF4J:发现绑定   [jar:file:/ D:/Maven-Repo/org/slf4j/slf4j-simple/1.7.21/slf4j-simple-1.7.21.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J:见{ {3}}   说明。 SLF4J:实际绑定是类型   [org.slf4j.impl.Log4jLoggerFactory] ​​SLF4J:请求的版本1.5.6   由你的slf4j绑定与[1.6,1.7] SLF4J不兼容:见   http://www.slf4j.org/codes.html#multiple_bindings了解更多详情。   log4j:WARN没有为logger找到appender(de.so.DemoSlf4j)。   log4j:WARN请正确初始化log4j系统。

    当我使用这些依赖项时,一切都很好。看看版本!

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.21</version> <!-- or use LATEST -->
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.21</version> <!-- or use LATEST -->
        </dependency>
    </dependencies>
    

    如果您使用org.slf4j:slf4j-log4j12:1.7.21代替slf4j-simple(更有可能用于制作目的),您将获得:

      

    log4j:WARN找不到logger(de.so.DemoSlf4j)的appender。   log4j:WARN请正确初始化log4j系统。 log4j:警告请参阅   http://www.slf4j.org/codes.html#version_mismatch了解更多信息。

    这样做:

    • 查看项目依赖项,如果有其他工件与日志框架(log4j,slf4f,...)具有级联依赖关系。
    • 检查您的依赖项是否已正确部署到Tomcat。 (... / WEB-INF / IIb)的
    • 检查版本

答案 1 :(得分:0)

也许你在你的项目中得到破解的jar,在调试模型细节中检查它,我也有这个问题,当我用调试模型构建时,我看到警告:

/repository/ch/qos/logback/logback-classic/1.1.11/logback-classic-1.1.11.jar,请删除它,然后重新构建它。问题解决了。

答案 2 :(得分:0)

我遇到了同样的问题。我通过将以下依赖项添加到我的 POM.xml 文件来修复它:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
    </dependency>

对于${slf4j.version},请指定最新版本号:

<properties>
    ...
    <slf4j.version>1.7.30</slf4j.version>
</properties>