gradle 当“slf 4j-api”和“slf 4j-simple”已经导入时,如何解决“找不到SLF 4J提供程序”的问题?

pb3skfrl  于 2023-01-31  发布在  其他
关注(0)|答案(1)|浏览(249)

我正在Gradle项目中使用Guice。运行main方法时,我收到以下错误:

SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.

我做了一些研究,并在build.gradle文件的dependencies部分添加了两个依赖项,如下所示:

dependencies {
    ...
    implementation group: 'org.slf4j', name: 'slf4j-api', version: '2.0.0-alpha1'
    testImplementation group: 'org.slf4j', name: 'slf4j-simple', version: '2.0.0-alpha1'
}

但错误仍然存在...
我是否需要通过Guice将SLF 4J提供程序与某个东西绑定?
我的main方法非常简单,因此Guice的AbstractModule类如下所示(不确定它们是否相关):

public class Restful {
    public static void main(String[] args) {
        Injector injector = Guice.createInjector(new ApplicationModule());
    }
}

以及

public class ApplicationModule extends AbstractModule {
    @Override
    protected void configure() {
        bind(UserDao.class).toInstance(new UserDao());
    }
}

提前感谢!

oymdgrw7

oymdgrw71#

您只在测试范围内添加了slf4j-simple,您希望它也在运行时范围内。
例如,在构建定义中将testImplementation更改为implementation
请注意,顾名思义,slf4j-simple是SLF4J API的最小实现,您可能希望使用一个更可定制的实现来实现logback、log4j2等生产代码。

相关问题