Jak włączyć logowanie org.slf4j dla wersji: „2.0.0-alpha1” w rozruchu wiosennym

11

Użyłem rejestrowania SLF4J do wydrukowania wszystkich dzienników. Korzystam z najnowszej wersji org.slf4j.

implementacja „org.slf4j: slf4j-api: 2.0.0-alpha1”

implementacja 'org.slf4j: log4j-over-slf4j: 2.0.0-alpha1'

Ale pojawia się następujący błąd i nie są drukowane żadne dzienniki.

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.

Dzienniki działają poprawnie ze starszą wersją (1.7.25). Czy w projekcie trzeba coś dodać lub skonfigurować, aby dzienniki te mogły zostać wydrukowane

r123
źródło
Czy mógłbyś udostępnić tutaj swój plik POM? Pomoże to zrozumieć, jakie zależności są używane
user2281204

Odpowiedzi:

1

Wydrukuje wiadomości dodając slf4j-log4j12 zamiast slf4j-api

Usuń następujące elementy

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

Dodaj

implementation group: 'org.slf4j', name: 'slf4j-log4j12', version: '+'
SST
źródło
0

Wynika to z faktu, że slf4j jest abstrakcją wymagającą powiązania z innymi istniejącymi bibliotekami. Dlatego jeśli używasz po prostu slf4j do drukowania dzienników, nie działałoby, ponieważ nie miałoby ustawień poziomów rejestrowania itp. Ten link zawiera pewne informacje na ten sam temat.

Ponadto nowa wersja Spring Boot ma domyślną integrację ze slf4j dla wersji 1.7.9

użytkownik2281204
źródło
0

Podczas korzystania z Spring Boot 2.x nie trzeba importować żadnej zależności dziennika . Wystarczy zaimportować część Spring Boot Starter , co najprawdopodobniej już zrobiłeś. Na przykład spring-boot-starter-web, w zależności od tego spring-boot-starter-logging, który spring-jclmoduł pobiera moduł wymagany do logowania w Spring Framework.

Podczas korzystania ze starterów Logback jest domyślnie używany do logowania, Log4j nie jest wymagany.

Po prostu usuń wszystkie odniesienia do slf4jpliku kompilacji. Oto jak wygląda odwołanie do Spring Boot Web Starter w pliku build.gradle.

compile("org.springframework.boot:spring-boot-starter-web")
dbaltor
źródło