java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > IDEA中程序包org.slf4j找不到

IntelliJ IDEA中程序包org.slf4j找不到的解决

作者:烈火雨季

这篇文章主要介绍了IntelliJ IDEA中程序包org.slf4j找不到的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

IDEA中程序包org.slf4j找不到

最近导入公司项目的时候遇到个莫名其妙的问题,提示程序包org.slf4j找不到。查了下maven,slf4j和log4j都已经导入了。

捣鼓了老半天终于发现问题了:

记得把slf4j-log4j的包也一起导入进去

idea里面用svn直接import进来的项目竟然还会遇到依赖包的问题我也是挺无语的……

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等)在类路径

来自 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或更高版本中的一个。

在这里插入图片描述

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

在这里插入图片描述

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文