最近合公司項目后,發現logback日志不輸出,最終發現是因為依賴沖突slf4j-log4j12原因
在使用logback作為日志輸出的時候,會遇到日志並沒有按照logback.xml中的配置進行輸出,出現這一問題的原因,有如下可能。
原因1:與log4j的jar包沖突
采用logback作為日志輸出時,需要包含如下依賴:
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.6</version> </dependency>
不能包含如下依賴,如果加入該依賴,會導致日志都輸出到log4j的日志文件中
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency>
原因2:多個logback.xml文件
由於引入的第三方包中帶有logback.xml文件,而導致logback有多份配置,而出現日志輸出不正常的情況。
這種情況下,可以通過控制台輸出日志,查看logback.xml文件都來自哪些,然后看是否能夠排除掉,如果無法排除,則可以通過java啟動時,指定logback.xml的文件路徑來解決
java -Dlogback.configurationFile=./conf/logback.xml