SLF4J: No SLF4J providers were found.完美解决

文章目录

    • 背景
    • slf4j的引入
    • 报错解决

背景

在项目中引入log4j时,首先考虑项目中所用到的框架的日志本身对log4j的兼容性,为此需要引入一个各种日志的抽象层slf4j,该抽象层使得你无论在项目中用什么日志框架,都可以很好的与项目中其他框架的日志兼容。所以,如果我们要使用log4j作为项目的日志框架,那么为了和项目中其他的框架的日志兼容,我们需要引入slf4j-api以及slf4j-log4j12。

slf4j的引入


        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-apiartifactId>
            <version>2.0.0-alpha1version>
        dependency>
        
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-log4j12artifactId>
            <version>2.0.0-alpha1version>
            <scope>testscope>
        dependency>

报错解决

此时启动项目,开头就报错

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.

根据提示阅读文档 http://www.slf4j.org/codes.html#noProviders 可知,slf4j在1.8.0之后的机制不一样了,所以我们换一个1.8.0之前的版本试一下
SLF4J: No SLF4J providers were found.完美解决_第1张图片
slf4j-api换成1.7.30后重新启动项目

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

可以看到,刚才的错误解决了,又遇到一个新的错误,继续根据给的文档进行查找问题 http://www.slf4j.org/codes.html#StaticLoggerBinder
SLF4J: No SLF4J providers were found.完美解决_第2张图片
可以看到,无论是第一个错误还是第二个错误,都是依赖版本的问题,官方在Jdk1.9开始对于slf4j-api以及其他如slf4j-log4j12等依赖的绑定机制不同了,Jdk1.9对应slf4j-api以及slf4j-log4j12的版本从1.8.0开始。所以,为了解决以上两个问题,(如果我们使用的是Jdk1.8及以下)我们可以直接降低这两个依赖的版本到1.8.0以下,或者升级为Jdk1.9再使用这两个依赖的版本为1.8.0以上。


        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-apiartifactId>
            <version>1.7.30version>
        dependency>
        
        <dependency>
            <groupId>org.slf4jgroupId>
            <artifactId>slf4j-log4j12artifactId>
            <version>1.7.30version>

        dependency>

!!!特别注意:以上slf4j-log4j12的scope要么直接去掉,要么改为compile,因为test代表只有在测试(@Test)的时候该依赖才起作用。

你可能感兴趣的:(slf4j,log4j,slf4j整合log4j,java日志)