Slf4j:找到slf4j-api依赖项,但未找到提供程序 [英] Slf4j: Found slf4j-api dependency but no providers were found

查看:31
本文介绍了Slf4j:找到slf4j-api依赖项,但未找到提供程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

找到slf4j-api依赖项,但未找到提供程序。你是说 添加slf4j-Simple?请参见https://www.slf4j.org/codes.html#noProviders

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

如果没有SLF4J,则报告此警告(即不是错误)消息 可以在类路径上找到提供程序。放置一个(且仅放置一个) Slf4j-nop.jar slf4j-imple.jar、slf4j-log4j12.jar、slf4j-jdk14.jar 或者类路径上的Logback-Classic.jar应该可以解决这个问题。 请注意,这些提供程序必须面向slf4j-api 1.8或更高版本。

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

请注意,slf4j-API版本1.8.x和更高版本使用 ServiceLoader机制。早期版本依赖于静态绑定器 Slf4j-api不再支持的机制。请阅读常见问题解答 条目SLF4J版本1.8.0中有什么变化?更重要的是 详细信息。

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

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

推荐答案

tutorialspoint中所述:

SLF4J代表Simple Logging Facade for Java。它提供了一个简单的 对所有日志记录框架进行抽象。它使用户能够工作 使用任何日志记录框架,如Log4j、Logback、JUL (java.util.Logging)等使用单一依赖项。

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

<!-- 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日志

 <!-- 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-简单日志记录

<!-- 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日志记录

<!-- 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>

这篇关于Slf4j:找到slf4j-api依赖项,但未找到提供程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆