943 Stimmen

SLF4J: Die Klasse "org.slf4j.impl.StaticLoggerBinder" konnte nicht geladen werden.

Meine Anwendung soll sowohl auf tcServer als auch auf WebSphere 6.1 eingesetzt werden. Diese Anwendung verwendet ehCache und benötigt daher slf4j als Abhängigkeit. Als Ergebnis habe ich das slf4j-api.jar (1.6) jar zu meinem War-Datei-Bundle hinzugefügt.

Die Anwendung funktioniert in tcServer einwandfrei, bis auf den folgenden Fehler:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Wenn ich jedoch in WebSphere einsetze, erhalte ich eine java.lang.NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder .

Auch begleitet von Failed to load class "org.slf4j.impl.StaticMDCBinder"

Ich habe die Klassenpfade beider Anwendungsserver überprüft und es gibt kein anderes slf4j jar.

Hat jemand eine Idee, was hier passieren könnte?

42voto

Edward Punkte 1189

Irgendwann sollten wir den Zettel mit der Warnung sehen SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. .

Dies geschieht, wenn im Klassenpfad keine passende SLF4J-Bindung gefunden werden konnte

Sie können nach dem Grund für diese Warnung suchen.
Hinzufügen eines der Gläser aus *slf4j-nop.jar , slf4j-simple.jar , slf4j-log4j12.jar , slf4j-jdk14.jar o logback-classic.jar* zum Klassenpfad sollte das Problem lösen.

compile "org.slf4j:slf4j-simple:1.6.1"

Fügen Sie zum Beispiel den obigen Code in Ihr build.gradle oder den entsprechenden Code zu pom.xml für das Maven-Projekt.

34voto

thangaraj Punkte 517

Ich hatte den gleichen Fehler. Ich habe slf4j-api, slf4j-log4j12 und log4j, in meiner lokalen Entwicklung konfiguriert. Alle Konfiguration war in Ordnung, aber slf4j-log4j12 Abhängigkeit, die ich aus mvnrepository kopiert hatte Testbereich <scope>test</scope> . Wenn ich das entfernt habe, ist alles in Ordnung.

Manchmal zerbrechen dumme Fehler unseren Kopf ;)

16voto

stones333 Punkte 8068

Datei anlegen slf4j-log4j12-1.6.4.jar im Klassenpfad reicht dafür aus.

12voto

Anver Sadhat Punkte 2876

SLF4j ist eine Abstraktion für verschiedene Logging-Frameworks . Abgesehen von slf4j müssen Sie daher ein beliebiges Logging-Framework wie log4j oder logback (usw.) in Ihren Klassenpfad aufnehmen.
Um eine Vorstellung zu haben, beziehen sich die Erster kleiner Schritt において http://logback.qos.ch/manual/introduction.html

12voto

shohan Punkte 303

Wenn Sie Maven zur Verwaltung von Abhängigkeiten verwenden, können Sie einfach folgende Abhängigkeit in pom.xml hinzufügen

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.5.6</version>
</dependency>

Für Nicht-Maven-Benutzer Laden Sie einfach die Bibliothek herunter und legen Sie sie in den Klassenpfad Ihres Projekts.

Hier können Sie Details sehen: http://www.mkyong.com/wicket/java-lang-classnotfoundexception-org-slf4j-impl-staticloggerbinder/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X