(笔记)SLF4J: No SLF4J providers were found.解决方法

问题:

SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.
SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions prior to 1.8.
SLF4J: Ignoring binding found at [jar:file:/Users/xxx/.m2/repository/org/slf4j/slf4j-log4j12/1.7.26/slf4j-log4j12-1.7.26.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#ignoredBindings for an explanation.

解决方法:

原本pom.xml里的slf4j-api依赖版本是1.8.0-beta1

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.8.0-beta1</version>
        </dependency>


        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.26</version>
        </dependency>

将pom.xml中的slf4j-api的版本改成1.7.26

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.26</version>
        </dependency>


        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.26</version>
        </dependency>

Done.

### 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 提供者的告警输出;相反地,正常工作的日志系统将会按照预期打印出调试信息等内容。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值