springboot使用默认的slf4j,和其他的冲突如何处理

本文介绍如何将Druid使用的log4j日志包替换为SpringBoot默认的日志包,以消除警告信息。通过简单的配置更改,可以统一日志框架,提高系统兼容性和稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

druid使用的是log4j日志包,统一让druid使用springboot默认的日志包,直接将log4j替换为中间包

替换前

 

 

 

 

替换后

 

执行后台就没有警告了

 

 

原理是

https://www.slf4j.org/legacy.html

 

### Spring Boot 中 SLF4J 缺少提供程序的问题 当遇到 `SLF4J: No SLF4J providers were found` 的错误提示时,意味着应用程序未能找到任何有效的日志实现来处理通过 SLF4J 发布的日志消息。默认情况下,这将导致应用使用无操作(NOP)记录器实现[^1]。 对于基于 Spring Boot 的项目而言,通常推荐依赖于 spring-boot-starter-logging 启动器,它会自动配置 Logback 作为底层的日志框架并集成 SLF4J 接口[^2]。然而,在某些场景下(比如引入了其他冲突日志库),可能会破坏这种预设机制从而引发上述警告信息。 #### 解决方法一:确保正确添加启动器依赖项 确认项目的构建文件(如 Maven pom.xml 或 Gradle build.gradle)中已包含如下所示的 starter logging: 对于 Maven 用户来说: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency> ``` 而对于采用 Gradle 构建工具的情况,则应加入下面这段声明: ```groovy implementation 'org.springframework.boot:spring-boot-starter-logging' ``` #### 解决方法二:排除不必要的第三方日志组件 有时开发者可能无意间引入了一些额外的日志门面或实现类,这些多余的依赖可能导致 SLF4J 查找路径混乱进而无法定位到合适的 provider 实现。因此建议仔细审查整个工程中的所有外部 jar 文件列表,并移除那些不必要存在的日志相关模块。 例如,如果你正在尝试切换至 log4j2 而不是默认的 Logback ,则需要注意调整相应的桥接包名称为 log4j-slf4j2-impl 来适配新版 slf4j API。 #### 验证修复效果 完成以上更改之后重新编译部署应用程序,此时应该不会再看到关于找不到 SLF4J 提供者的告警输出;相反地,正常工作的日志系统将会按照预期打印出调试信息等内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lihuayingmail

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值