1. 程式人生 > >Log4j配置失效導致spring等框架一直列印DEBUG級別的日誌

Log4j配置失效導致spring等框架一直列印DEBUG級別的日誌

        在應用中使用了SpringMVC+Hibernate+Log4j+SLF4J。Log4j的日誌級別調到INFO。但是在web容器(Tomcat)在啟動和執行的時候Spring,Hibernate等框架中DEBUG級別的日誌不斷狂刷,導致日誌檔案劇增,磁碟沒幾天就爆了。

針對這個問題在網上找了好多方法,都是沒有效果或者治標不治本的。一直以為自己的Log4j配置檔案寫的有問題。後來在自己新搭建的project中發現Log4j的配置是正確的。只打印出INFO及以上級別的日誌資訊。後來才知道,是因為自己的應用依賴的jar隱式依賴了logback日誌框架。

Log4j和logback是有衝突的,這樣會導致Log4j的日誌級別降低到DEBUG級別。知道了原因,就在maven依賴中把logback的隱式依賴給去掉。然後啟動tomcat,發現日誌可以正常列印。去除依賴的方法:

<dependency>
<groupId>com.hoteam.df</groupId>
<artifactId>util-tools</artifactId>
<version>3.1.8</version>
<exclusions>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</exclusion>
</exclusions>
</dependency>

log4j+sjf4j需要的jar包包括:

              log4j-1.2.xx.jar
             slf4j-api-x.x.x.jar
             slf4j-log4j12-x.x.x.jar

logback+sjf4j需要的jar包有

             logback-classic-0.9.21.jar
             logback-core-0.9.21.jar
             slf4j-api-1.6.x.jar