首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Slf4j:找到slf4j-api依赖项,但没有找到提供程序

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

Stack Overflow用户
提问于 2019-02-12 14:54:20
回答 2查看 59.6K关注 0票数 15

我用Lombok。不久前,当构建一个项目时,编译器开始发出以下消息:

找到slf4j-api依赖项,但没有找到提供程序。你是想添加slf4j-简单吗?见https://www.slf4j.org/codes.html#noProviders

如果你按照这个链接,有一个相当模糊的评论:

当在类路径上找不到SLF4J提供程序时,报告此警告(即不是错误)消息。将slf4j-nop.jar slf4j-simple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar或logback-classic.jar放置在类路径上应该可以解决这个问题。请注意,这些提供程序必须针对slf4jAPI 1.8或更高版本。 如果没有提供程序,SLF4J将默认为无操作记录器提供程序。 请注意slf4j-api版本1.8.x,并在以后使用ServiceLoader机制。早期版本依赖于静态绑定机制,而slf4j-api不再遵守这种机制。请阅读FAQ条目在SLF4J版本1.8.0中发生了什么变化?更重要的细节。 如果您负责打包应用程序,而不关心日志记录,那么将slf4j-nop.jar放在应用程序的类路径上将消除此警告消息。注意,嵌入组件(如库或框架)不应该声明依赖于任何SLF4J提供程序,而应该只依赖slf4j-api。当库声明编译时依赖于SLF4J提供程序时,它会将该提供程序强加给最终用户,从而否定SLF4J的目的。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-29 03:27:31

图托利亚点所述:

SLF4J代表Java简单日志外观。它提供了所有日志记录框架的简单抽象。它允许用户使用任何日志记录框架,如Log4j、Logback、JUL (java.util.logging)等。

这意味着您必须在类路径上为SLF4J本身提供一个具体的java日志库(例如Maven):

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>2.0.0-alpha0</version>
</dependency>

您还需要指定对首选日志库的依赖关系。例如:

对于标准jdk1.4日志记录

代码语言:javascript
复制
 <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-jdk14 -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-jdk14</artifactId>
    <version>2.0.0-alpha0</version>
    <scope>runtime</scope>
</dependency>  

对于slf4j-简单的日志记录

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-simple -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.0-alpha0</version>
    <scope>runtime</scope>
</dependency>

对于log4j日志记录

代码语言:javascript
复制
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>2.0.0-alpha0</version>
    <scope>runtime</scope>
</dependency>
票数 25
EN

Stack Overflow用户

发布于 2021-09-29 13:24:11

请参阅本页: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-简单”maven依赖项。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54652836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档