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
Odpowiedzi:
Wydrukuje wiadomości dodając slf4j-log4j12 zamiast slf4j-api
Usuń następujące elementy
Dodaj
źródło
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
źródło
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 tegospring-boot-starter-logging
, któryspring-jcl
moduł 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
slf4j
pliku kompilacji. Oto jak wygląda odwołanie do Spring Boot Web Starter w pliku build.gradle.źródło