Slf4j:找到 slf4j-api 依赖,但没有找到提供程序

我用龙目岛。前段时间在构建项目时,编译器开始发出以下消息:

找到 slf4j-api 依赖项,但未找到提供程序。您的意思是添加 slf4j-simple 吗?请参阅https://www.slf4j.org/codes.html#noProviders 。

如果你点击链接,会有一个相当模糊的评论:

当在类路径上找不到 SLF4J 提供程序时,会报告此警告(即不是错误)消息。将 slf4j-nop.jar slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar 或 logback-classic.jar 中的一个(也是唯一一个)放在类路径上应该可以解决问题。请注意,这些提供程序必须针对 slf4j-api 1.8 或更高版本。

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

请注意 slf4j-api 版本 1.8.x 及更高版本使用 ServiceLoader 机制。早期版本依赖于 slf4j-api 不再支持的静态绑定器机制。请阅读 FAQ 条目 SLF4J 版本 1.8.0 有哪些变化?了解更多重要细节。

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

我不知道如何正确地做到这一点。如果你有经验,请告诉我怎么做。


斯蒂芬大帝
浏览 306回答 2
2回答

慕码人2483693

如教程点所述:SLF4J 代表 Java 的简单日志记录外观。它提供了所有日志框架的简单抽象。它使用户能够使用单一依赖项使用任何日志记录框架,例如 Log4j、Logback、JUL (java.util.logging) 等。这意味着您必须在 SLF4J 本身的依赖项之上在您的类路径上提供一个具体的 java 日志库(Maven 示例):<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --><dependency>&nbsp; &nbsp; <groupId>org.slf4j</groupId>&nbsp; &nbsp; <artifactId>slf4j-api</artifactId>&nbsp; &nbsp; <version>2.0.0-alpha0</version></dependency>您还需要指定对首选日志库的依赖关系。例如:对于标准 jdk1.4 日志记录:&nbsp;<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-jdk14 --><dependency>&nbsp; &nbsp; <groupId>org.slf4j</groupId>&nbsp; &nbsp; <artifactId>slf4j-jdk14</artifactId>&nbsp; &nbsp; <version>2.0.0-alpha0</version>&nbsp; &nbsp; <scope>runtime</scope></dependency>&nbsp;&nbsp;对于slf4j-简单日志记录:<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple --><dependency>&nbsp; &nbsp; <groupId>org.slf4j</groupId>&nbsp; &nbsp; <artifactId>slf4j-simple</artifactId>&nbsp; &nbsp; <version>2.0.0-alpha0</version>&nbsp; &nbsp; <scope>runtime</scope></dependency>对于log4j 日志记录:<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --><dependency>&nbsp; &nbsp; <groupId>org.slf4j</groupId>&nbsp; &nbsp; <artifactId>slf4j-log4j12</artifactId>&nbsp; &nbsp; <version>2.0.0-alpha0</version>&nbsp; &nbsp; <scope>runtime</scope></dependency>

www说

请参阅此页面:http ://www.slf4j.org/codes.html#noProviders您可以添加以下任一依赖项: 在类路径上放置 slf4j-nop.jar slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar 或 logback-classic.jar 中的一个(并且只有一个)应该解决这个问题我使用了来自https://mvnrepository.com/artifact/org.slf4j/log4j-over-slf4j的“slf4j-simple”maven 依赖项
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java