引入redis依赖后启动报错:log4j-slf4j-impl cannot be persent with log4j-to-slf4j
时间: 2024-12-12 16:12:13 浏览: 64
引入Redis依赖后启动报错:`log4j-slf4j-impl cannot be present with log4j-to-slf4j`,这是因为`log4j-slf4j-impl`和`log4j-to-slf4j`这两个库之间存在冲突。以下是解决这个问题的步骤:
1. **检查依赖冲突**:
使用Maven或Gradle的依赖树命令来查看项目的依赖关系,找出哪些库引入了`log4j-slf4j-impl`和`log4j-to-slf4j`。
- Maven:
```bash
mvn dependency:tree
```
- Gradle:
```bash
gradle dependencies
```
2. **排除冲突的依赖**:
在引入Redis依赖时,排除`log4j-slf4j-impl`或`log4j-to-slf4j`中的一个。
- Maven:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
</exclusions>
</dependency>
```
- Gradle:
```groovy
implementation('org.springframework.boot:spring-boot-starter-data-redis') {
exclude group: 'org.apache.logging.log4j', module: 'log4j-slf4j-impl'
}
```
3. **统一日志框架**:
确保项目中使用的日志框架是统一的。例如,如果使用SLF4J作为日志门面,确保所有日志实现都通过SLF4J进行。
- 如果项目中已经使用了SLF4J,可以排除`log4j-slf4j-impl`,并添加`log4j-to-slf4j`。
- 如果项目中使用了Log4j2,可以排除`log4j-to-slf4j`,并添加`log4j-slf4j-impl`。
4. **添加缺失的依赖**:
根据需要,添加缺失的依赖。例如,如果需要使用SLF4J,可以添加以下依赖:
- Maven:
```xml
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.30</version>
</dependency>
```
- Gradle:
```groovy
implementation 'org.slf4j:slf4j-api:1.7.30'
implementation 'org.slf4j:slf4j-log4j12:1.7.30'
```
通过以上步骤,可以解决`log4j-slf4j-impl`与`log4j-to-slf4j`之间的冲突。
阅读全文
相关推荐


















