log4j-slf4j-impl cannot be present with log4j-to-slf4j — springBoot日志冲突
一、问题背景
今天系统在引入新的第三方组件 xxx-spring-boot-starter 后,出现报错,系统无法启动
(本人这里是引入pageHelper后出现的问题)
报错信息:
二、问题原因:
1、项目中使用了两种日志框架logback、log4j,都遵守的是slf4j 定义,并对其进行了实现;
2、log4j的实现在进行转换中无法共同出现,就是Log4j产生了冲突。
三、解决方案:
既然是冲突导致,那么就只采用一种日志框架。
1、采用log4j2(推荐)
<!--全局日志排除-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--采用log4j2 日志输出方式-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
2、全部排除,采用原始日志框架
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>