logback 日志不输出到指定文件

时间:2022-11-19 12:41:58

在使用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