日志洁癖

我不但有代码洁癖,而且还有日志洁癖。html

看着这样的代码就会感到不舒服:web

if(a==0 )

必须把它改为:spring

if (a == 0)

才能继续思考。apache

当我在Tomcat输出的日志里看到这样的警告:app

SLF4J: Class path contains multiple SLF4J bindings

不由陷入了深深的思考。webapp

我讨厌一切警告。this

Treat warnings as errors or delete them, but never spend human labor looking through warning lists routinely.
将警告当错误同样对待,或者完全删除相关代码,可是绝对不要浪费时间天天对它视若无睹。

因而,像大家同样开始在网上搜索。.net

有人说这样解决日志

有人说那样解决code

还有人说Solve it this way.

可是我告诉大家,没有一个方法能解决。

个人pom.xml文件是这么写的:

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.7</version>
        </dependency>

        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-all</artifactId>
            <version>5.11.1</version>
        </dependency>

这是由于activemq-all.jar包是一个ueber包,它里面已经包含了一个slf4j-log4j12.jar,你妄图用这样的方法去解决这个警告:

<dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-all</artifactId>
            <version>5.11.1</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

是注定不可能成功的。

在这里,最正确地解决这个问题的方法是:

<dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-all</artifactId>
            <version>5.11.1</version>
        </dependency>

activemq-all改为activemq-spring就行了。

虽然如此,我又遇到了问题:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

此次pom.xml是没有任何问题的,但为何还有这个错误呢?

最后发现竟然是有人在/src/main/webapp/WEB-INF下放了一个lib文件夹,在这个文件夹里放了一个老版本的slf4j-log4j12-1.6.1.jar进去。

果断删除全部lib文件夹下的文件。

从新提交代码,编译,部署。

终于,咱们完全解决了全部SLF4J: Class path contains multiple SLF4J bindings.问题。

日志一片清爽。

感受世界从新恢复了秩序。

相关文章
相关标签/搜索