如何在春季启动中启用版本为“ 2.0.0-alpha1”的org.slf4j登录

时间:2020-04-17 08:18:52

标签: java spring-boot spring-mvc maven-plugin

我已使用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)上正常工作。在项目上是否需要添加或配置任何内容,以便可以打印这些日志

3 个答案:

答案 0 :(得分: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: '+'

答案 1 :(得分:0)

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

此外,Spring Boot的新版本与slf4j的默认集成为版本1.7.9

答案 2 :(得分:0)

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

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

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

compile("org.springframework.boot:spring-boot-starter-web")