Skip to content

Usage of pre-release SLF4J 1.8 breaks compatibility with majority of libraries that use SLF4J #355

Closed
@antjori

Description

@antjori
  • Framework version: 1.5
  • Implementations: Spring Boot 2.3.1

Scenario

A simple Kotlin + Gradle + Springboot2 application that exposes a GET endpoint.

Expected behavior

On startup the OOB Springboot 2 logs should be displayed without any SLF4J warnings:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.1.RELEASE)

2020-06-15 10:27:40.138  INFO 46658 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-06-15 10:27:40.163  INFO 46658 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-06-15 10:27:40.163  INFO 46658 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.36]
2020-06-15 10:27:40.286  INFO 46658 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-06-15 10:27:40.286  INFO 46658 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1597 ms
2020-06-15 10:27:40.480  INFO 46658 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-06-15 10:27:40.719  INFO 46658 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-06-15 10:27:40.740  INFO 46658 --- [           main] ApplicationKt  : Started ApplicationKt in 4.021 seconds (JVM running for 5.401)

Actual behavior

On startup - both local or remote - the following warning is logged, followed by the Spring logo:

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:/Users/gregor/.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.

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.1.RELEASE)

There's also a similar issue reported: #80.

Apparently, this is happening due to the bump of slf4j-api dependency version from 1.7.25 to 1.8.0-beta2.

If it's okay, I'll follow up with a PR that sets slf4j-api version to 1.7.30.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions