Ich habe die SLF4J-Protokollierung verwendet, um alle Protokolle zu drucken. Ich verwende die neueste Version von org.slf4j.
Implementierung 'org.slf4j: slf4j-api: 2.0.0-alpha1'
Implementierung 'org.slf4j: log4j-over-slf4j: 2.0.0-alpha1'
Aber ich erhalte die folgende Fehlermeldung und es werden auch keine Protokolle gedruckt.
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.
Die Protokolle funktionieren einwandfrei mit der älteren Version (1.7.25). Muss im Projekt etwas hinzugefügt oder konfiguriert werden, damit diese Protokolle gedruckt werden können?
Antworten:
Es werden die Nachrichten gedruckt, die slf4j-log4j12 anstelle von slf4j-api hinzufügen
Entfernen Sie Folgendes
Hinzufügen
quelle
Dies liegt daran, dass slf4j eine Abstraktion ist, die mit anderen bereits vorhandenen Bibliotheken verknüpft werden muss. Wenn Sie also einfach slf4j zum Drucken von Protokollen verwenden, funktioniert dies nicht, da die Einstellungen für Protokollierungsstufen usw. nicht vorhanden sind. Dieser Link enthält einige Informationen dazu.
Außerdem hat die neue Version von Spring Boot eine Standardintegration mit slf4j für Version 1.7.9
quelle
Sie müssen keine Protokollabhängigkeit importieren, wenn Sie Spring Boot 2.x verwenden . Sie müssen lediglich einen Spring Boot Starter importieren , was Sie höchstwahrscheinlich bereits getan haben. ZB
spring-boot-starter-web
was davon abhängtspring-boot-starter-logging
, welchesspring-jcl
Modul für die Protokollierung mit Spring Framework benötigt wird.Bei Verwendung von Startern wird Logback standardmäßig für die Protokollierung verwendet. Log4j ist nicht erforderlich.
Entfernen Sie einfach alle Verweise auf
slf4j
aus Ihrer Build-Datei. So sieht der Verweis auf Spring Boot Web Starter in der Datei build.gradle aus.quelle