SLF4J日志绑定无法工作

3

我正在尝试启用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.

即使我已经在pom.xml文件中添加了这两个依赖项,但仍然收到相同的消息:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.5</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.5</version>
</dependency>

我正在这样测试我的记录器
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...
//Logger
private static final Logger logger = LoggerFactory.getLogger(Hello.class);
...
logger.info("Test - - - Log message...");

我是新手,对于Spring/Maven不熟悉,认为这个问题很容易解决,但是一直没有成功...
编辑: 这是我的Maven pom.xml文件。
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.myfakecompany.project</groupId>
    <artifactId>SpringApp</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>Spring MVC Webapp</name>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.2.3.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-cassandra</artifactId>
            <version>1.4.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.3.RELEASE</version>
        </dependency>


        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.5</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.5</version>
        </dependency>
    </dependencies>


    <repositories>
        <repository>
            <id>spring-milestone</id>
            <name>Spring Maven MILESTONE Repository</name>
            <url>http://repo.spring.io/libs-milestone</url>
        </repository>
    </repositories>


    <build>
        <finalName>SpringMVCApp</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.tomcat.maven</groupId>
                    <artifactId>tomcat7-maven-plugin</artifactId>
                    <version>2.2</version>
                    <configuration>
                        <path>/</path>
                        <contextReloadable>true</contextReloadable>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

编辑2: @Ceki,这是mvn dependency:tree的输出...

[INFO] com.myfakecompany.project:SpringApp:war:1.0-SNAPSHOT
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] +- org.springframework:spring-webmvc:jar:4.2.3.RELEASE:compile
[INFO] |  +- org.springframework:spring-beans:jar:4.2.3.RELEASE:compile
[INFO] |  +- org.springframework:spring-context:jar:4.2.3.RELEASE:compile
[INFO] |  |  \- org.springframework:spring-aop:jar:4.2.3.RELEASE:compile
[INFO] |  |     \- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  +- org.springframework:spring-core:jar:4.2.3.RELEASE:compile
[INFO] |  |  \- commons-logging:commons-logging:jar:1.2:compile
[INFO] |  +- org.springframework:spring-expression:jar:4.2.3.RELEASE:compile
[INFO] |  \- org.springframework:spring-web:jar:4.2.3.RELEASE:compile
[INFO] +- org.springframework.data:spring-data-cassandra:jar:1.4.5.RELEASE:compile
[INFO] |  +- org.springframework.data:spring-cql:jar:1.4.5.RELEASE:compile
[INFO] |  |  \- com.google.guava:guava:jar:19.0:compile
[INFO] |  +- org.springframework.data:spring-data-commons:jar:1.12.5.RELEASE:compile
[INFO] |  +- com.datastax.cassandra:cassandra-driver-dse:jar:2.1.7.1:compile
[INFO] |  |  \- com.datastax.cassandra:cassandra-driver-core:jar:2.1.7.1:compile
[INFO] |  |     +- io.netty:netty-handler:jar:4.0.27.Final:compile
[INFO] |  |     |  +- io.netty:netty-buffer:jar:4.0.27.Final:compile
[INFO] |  |     |  |  \- io.netty:netty-common:jar:4.0.27.Final:compile
[INFO] |  |     |  +- io.netty:netty-transport:jar:4.0.27.Final:compile
[INFO] |  |     |  \- io.netty:netty-codec:jar:4.0.27.Final:compile
[INFO] |  |     \- com.codahale.metrics:metrics-core:jar:3.0.2:compile
[INFO] |  \- org.slf4j:jcl-over-slf4j:jar:1.7.21:runtime
[INFO] +- org.springframework:spring-jdbc:jar:4.3.3.RELEASE:compile
[INFO] |  \- org.springframework:spring-tx:jar:4.3.3.RELEASE:compile
[INFO] +- org.slf4j:slf4j-api:jar:1.7.5:compile
[INFO] \- org.slf4j:slf4j-simple:jar:1.7.5:compile

根据链接 http://www.slf4j.org/codes.html#StaticLoggerBinder,您应该只使用一个依赖项,而不是两个... 您只需在pom.xml中包含slf4j-simple即可。 - ryekayo
1
@ryekayo 声明 slf4j-api 完全没问题。但是,如果声明了 slf4j-simple 这样的绑定,slf4j-api 将被自动引入。因此,如果已经声明了一个绑定,slf4j-api 就是多余的。 - Ceki
@Ceki,我已经在编辑2中添加了输出,我相信你发布的链接可能是一个可能的解决方案,但是自那以后IDE已经改变了几年,不确定如何导航到talha06指定的选项卡... - crayon_box
@Ceki,我按照你在那篇文章中的最新编辑建议进行了操作,但是在“项目结构->工件”列表下没有任何内容。由于问题仍未解决,我会等待确认它是否是重复的... - crayon_box
更新:我的记录器现在可以工作了,尽管我不确定我做了什么来使它工作,有两种可能:1)在项目结构->工件选项卡下,我点击添加新的并添加了新的工件,然后将其删除;或者2)重新启动应用程序和计算机。很抱歉我无法确定解决方案是什么。 - crayon_box
显示剩余4条评论
1个回答

0
更新:我的记录器现在可以工作了,尽管我不确定我到底做了什么才使它工作,可能是以下两种情况之一:1)在“项目结构”->“工件”选项卡下,我点击了“添加新的”并添加了新的工件,然后将其删除;或者2)重新启动了应用程序和计算机。很抱歉我无法确定解决方案到底是什么。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接