为何Maven pom.xml配置SLF4J后,Spring Java程序仍报“No SLF4J providers were found”错误?
解决SLF4J无提供者的问题
问题根源
你配置的logback-classic依赖被设置了<scope>test</scope>,这个范围意味着该依赖仅在测试代码执行时才会被加载,主程序运行时根本找不到这个SLF4J的核心实现类,所以SLF4J只能默认使用无操作的NOP日志实现。
解决步骤
- 调整logback-classic的依赖范围
把logback-classic的<scope>test</scope>删除,让它在主程序环境中生效,修改后的依赖片段如下:<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.4.14</version> </dependency> - 刷新依赖并验证
执行mvn clean install(或者在IDE中刷新Maven依赖),重新运行你的Spring程序,SLF4J就能找到logback作为日志提供者,错误会消失。
可选方案(如果不想用logback)
如果不需要logback,也可以替换成其他SLF4J兼容的日志实现,比如添加slf4j-simple依赖:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>2.0.9</version> </dependency>
内容的提问来源于stack exchange,提问作者May Alotaibi
相关产品推荐
相关产品推荐

