我正在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());
}
}
提前感谢!
1条答案
按热度按时间oymdgrw71#
您只在测试范围内添加了
slf4j-simple
,您希望它也在运行时范围内。例如,在构建定义中将
testImplementation
更改为implementation
。请注意,顾名思义,
slf4j-simple
是SLF4J API的最小实现,您可能希望使用一个更可定制的实现来实现logback、log4j2等生产代码。