如何在Spring Boot中启用版本为'2.0.0-alpha1'的org.slf4j登录


11

我已使用SLF4J日志记录来打印所有日志。我正在使用最新版本的org.slf4j。

实现'org.slf4j:slf4j-api:2.0.0-alpha1'

实现'org.slf4j:log4j-over-slf4j:2.0.0-alpha1'

但是我收到以下错误,并且也没有打印日志。

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.
SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions prior to 1.8.
SLF4J: Ignoring binding found at [jar:file:/home/user/.gradle/caches/modules-2/files-2.1/ch.qos.logback/logback-classic/1.2.3/7c4f3c474fb2c041d8028740440937705ebb473a/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#ignoredBindings for an explanation.

日志在较早版本(1.7.25)上正常工作。是否需要在项目上添加或配置任何内容,以便可以打印这些日志


您可以在这里共享您的POM文件吗?这将有助于了解正在使用的依赖项
user2281204,

Answers:


1

它将打印添加slf4j-log4j12而不是slf4j-api的消息

删除以下内容

implementation 'org.slf4j:slf4j-api:2.0.0-alpha1'
implementation 'org.slf4j:log4j-over-slf4j:2.0.0-alpha1'

implementation group: 'org.slf4j', name: 'slf4j-log4j12', version: '+'

0

这是因为slf4j是一个抽象,需要与其他预先存在的库绑定。因此,如果您仅使用slf4j来打印日志,它将无法工作,因为它没有日志级别等设置。 此链接提供了一些相同的信息。

此外,Spring Boot的新版本与1.7.9版的slf4j进行了默认集成。


0

使用Spring Boot 2.x时不需要导入任何日志依赖项。所需要做的就是导入一些Spring Boot Starter,您很可能已经完成了。例如spring-boot-starter-web,取决于spring-boot-starter-logging,它引入了spring-jcl使用Spring Framework进行日志记录所需的模块。

使用启动器时,默认情况下使用Logback进行日志记录,而不需要Log4j。

只需slf4j从构建文件中删除所有对它的引用即可。这是对Spring Boot Web Starter的引用在build.gradle文件中的样子。

compile("org.springframework.boot:spring-boot-starter-web")
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.