logback 日志不输出
最近合公司项目后,发现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
个人学习笔记,记录日常学习,便于查阅及加深,仅为方便个人使用。