SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".报错解决

问题:在一个springboot程序里打印日志,结果报错
image

原因:
使用默认的slf4j打印日志,需要配合slf4j-nop.jar slf4j-simple.jar,slf4j-log4j12.jar,slf4j-jdk14.jar或logback-classic.jar中的其中一个jar包使用(只能是一个,多了就会有冲突)。

解决方法:
在Maven工程的pom文件中,新增一个上述的包文件之一的依赖配置,项目就可以正常编译运行了。

点击查看代码
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.7.25</version>
  <scope>compile</scope>
</dependency>

image


【SLF4J】
Simple Logging Facade for Java(SLF4J)用作各种日志框架(例如 java.util.logging,logback,log4j)的简单外观或抽象,允许最终用户在部署时插入所需的日志框架。
要切换日志框架,只需替换类路径上的 slf4j 绑定。 例如,要从 java.util.logging 切换到 log4j,只需将 slf4j-jdk14-1.8.0-beta2.jar 替换为 slf4j-log4j12-1.8.0-beta2.jar。
SLF4J 不依赖于任何特殊的类装载机制。 实际上,每个 SLF4J 绑定在编译时都是硬连线的,以使用一个且只有一个特定的日志记录框架。 例如,slf4j-log4j12-1.8.0-beta2.jar 绑定在编译时绑定以使用 log4j。 在您的代码中,除了slf4j-api-1.8.0-beta2.jar 之外,您只需将您选择的一个且只有一个绑定放到相应的类路径位置。 注意不要在类路径上放置多个绑定。

以下是slf4j 绑定其它日志组件的图解说明。
image
因此,slf4j-api 本质就是一个接口定义。总之,Slf4j 更好的兼容了各种具体日志实现的框架,如图:
image

参考文献:
【1】常用日志框架(Log4j,Slf4j,Logback)之间到底有啥区别 - 腾讯云开发者社区-腾讯云
https://cloud.tencent.com/developer/article/1442406

posted @ 2022-09-20 15:15  nxf_rabbit75  阅读(996)  评论(0编辑  收藏  举报