So aktivieren Sie die Anmeldung in org.slf4j für die Version '2.0.0-alpha1' im Spring Boot


11

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?


Könnten Sie Ihre POM-Datei hier teilen?
Dies

Antworten:


1

Es werden die Nachrichten gedruckt, die slf4j-log4j12 anstelle von slf4j-api hinzufügen

Entfernen Sie Folgendes

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

Hinzufügen

implementation group: 'org.slf4j', name: 'slf4j-log4j12', version: '+'

0

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


0

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-webwas davon abhängt spring-boot-starter-logging, welches spring-jclModul 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 slf4jaus Ihrer Build-Datei. So sieht der Verweis auf Spring Boot Web Starter in der Datei build.gradle aus.

compile("org.springframework.boot:spring-boot-starter-web")
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.