IDEA 调试@Slf4j log.info无法打印日志,报错failed to load class “org.slf4j.imp.StaticLoggerBinder“及解决亲测可行

IDEA 调试@Slf4j log.info无法打印日志,报错failed to load class "org.slf4j.imp.StaticLoggerBinder"及解决亲测可行

    • 1. 报错 failed to load class "org.slf4j.imp.StaticLoggerBinder"
    • 2. 解决 仅提供唯一一个包(slf4j-nop.jar、slf4j-reload4j.jar、slf4j-api.jar、slf4j-jdk14.jar或logback-classic.jar等)在类路径
    • 3. 在右侧查看自己引入的包,然后exclusions排除对应的包
    • 参考

1. 报错 failed to load class “org.slf4j.imp.StaticLoggerBinder”

在这里插入图片描述

2. 解决 仅提供唯一一个包(slf4j-nop.jar、slf4j-reload4j.jar、slf4j-api.jar、slf4j-jdk14.jar或logback-classic.jar等)在类路径

来自 www.slf4j.org 官网的解析:

当在类路径上找不到SLF4J提供程序时,会报告此警告,即不是错误消息。将slf4j-nop.jar、slf4j-reload4j.jar、slf4j-jdk14.jar或logback-classic.jar等众多可用提供程序中的一个(也是唯一一个)放在类路径上应该可以解决问题。

在没有提供程序的情况下,SLF4J将默认为无操作(NOP)记录器提供程序。

请注意,slf4j-api 2.0.x及更高版本使用ServiceLoader机制。早期的版本依赖于静态绑定机制,而slf4j-api不再采用这种机制。请阅读常见问题解答条目SLF4J 2.0.0版本有什么变化?了解更多重要细节。

如果您负责打包应用程序而不关心日志记录,那么将slf4j-nop.jar放在应用程序的类路径上将消除此警告消息。请注意,库或框架等嵌入式组件不应声明对任何SLF4J提供程序的依赖,而应仅依赖于SLF4J-api。当库声明编译时依赖于SLF4J提供程序时,它会将该提供程序强加给最终用户,从而否定SLF4J的目的。

类路径包含SLF4J绑定,目标为SLF4J-api版本1.7.x或更早版本为Jigsaw(Java 9)、slf4j-api 2.0.x版及更高版本的出现做计划时,请使用ServiceLoader机制。SLF4J的早期版本依赖于静态绑定机制,而SLF4J-api 2.0.x版本不再采用该机制。

如果SLF4J没有找到以SLF4J 2.0.x为目标的提供程序,而是找到了以SLF4J.1.7或更早版本为目标的绑定,它将列出它找到的绑定,但在其他情况下将忽略它们。

这可以通过在类路径上放置一个SLF4J提供程序来解决,这些提供程序包括logback版本1.3.x及更高版本,以及SLF4J-reload4j、SLF4J-jdk14、SLF4J simple版本2.0.0或更高版本中的一个。

IDEA 调试@Slf4j log.info无法打印日志,报错failed to load class “org.slf4j.imp.StaticLoggerBinder“及解决亲测可行_第1张图片

3. 在右侧查看自己引入的包,然后exclusions排除对应的包

IDEA 调试@Slf4j log.info无法打印日志,报错failed to load class “org.slf4j.imp.StaticLoggerBinder“及解决亲测可行_第2张图片

参考

  • https://www.slf4j.org/codes.html#StaticLoggerBinder
  • http://www.xiaoyebailong.com/index.php/2022/03/05/69082.htm
  • https://blog.csdn.net/langtian08/article/details/82015017

你可能感兴趣的:(工具箱,JAVA,intellij-idea,java,IDEA,Slf4j,log.info)