51,396
社区成员




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.
slf4j可已正常使用,进行maven操作时候如clean打包 时报错,但是不影响清除,也不影响打包
请问哪位大佬告诉我下这是什么问题 ,怎么解决
使用 maven 进行编译时 出现的警告信息,说明 pom.xml 文件中 缺少具体的适配器日志组件的衔接包的依赖。配置到依赖中就可以了。
不影响程序运行,是因为第二行警告信息,
由于没有找到具体的日志组件的衔接jar包,所以,默认提供一个 NOOP Logger进行处理了,
NOOP 的意思就是啥操作都不做。
编译不报错,但是,可能会没有SLF4J的日志输出,其他日志组件的使用应该不受影响。
日志显示的很清楚了。
SLF4J 是一个接口性质的组件,具体写入日志的功能,需要额外的日志组件进行日志的写入。
如果你的项目使用的是 logback 作为日志的写入组件,那么,除了要在 pom 文件中配置 logback 的依赖以外,
还需要配置 logback-classic 的依赖。
日志信息表明 加载StaticLoggerBinder失败,说明你的依赖里面缺少 slf4j-logback 的依赖。
当然,slf4j 除了支持 logback 以外还支持 log4j , apache-commons-logging , jdk 等等多重日志组件进行具体的写入操作。
最后,
SLF4J 的jar包,其实可以分为3种类型:
1. slf4j-core 核心包,定义日志的接口类型,可以统一日志接口的使用。
2. slf4j-xxx 衔接 slf4j 与 具体负责日志写入的组件。
3. xxx-over-slf4j (桥接工具)覆盖某个日志写入的组件,把它定向到 slf4j 进行日志的输出。
比如 : jcl-over-slf4j 引入这个jar包的场景是你的项目里面原先是使用 Apache Commons Logging 的日志组件,现在,你不想使用 Apache Commons Logging 进行日志的写入了,并且,只想统一使用 SLF4J 进行日志的处理,然后,原先的代码还不想做具体的更改,那么,在这种情况下,引入 jcl-over-slf4j 就可以解决这个问题。
如果我写的东西你看不明白,请看 这个文章 https://blog.csdn.net/yangzl2008/article/details/81503579。