2013-04-04 11 views
10

Ich verwende JDK-Protokollierung als Protokollierungsframework und SLF4J als einfache Fassade. Ich habe einige Abfragen, wenn ich verschiedene Level-Protokolle protokolliere.Unterschiedliche Protokollierungsebene zwischen SFL4J und JDK-Protokollierung

SLF4J hat folgende Protokollebenen

trace (die am wenigsten ernst)
Debug
info

Fehler
tödlich (die schwerste)

JDK Logging warnen hat folgende Protokollstufen

SCHWEREN (höchster Wert)
WARNUNG
INFO
CONFIG
FINE
FINER
FINEST (niedrigster Wert)

Wenn ich die Log-Level auf DEBUG gesetzt werden soll, dann ist das Niveau nicht verfügbar in JDK-Protokollierung. Kann mir bitte jemand erklären, wie wir die DEBUG-Level-Logging in dieser Situation bekommen können. Müssen wir für diese Situation zusätzliche Konfigurationen vornehmen?

Aktualisiert

dies ist mein Eigentum Dateikonfiguration

Handler = com.amc.logging.handlers.DebugLogHandler

com.amc.logging.handlers.DebugLogHandler.pattern = c: /logs/debug_log.log com.amc.logging.handlers.DebugLogHandler.level = FEIN com.amc.logging.handlers.DebugLogHandler.formatter = java.util.logging.SimpleFormatter com.amc.logging.handlers.DebugLogHandler .append = t rue

Bitte lassen Sie mich wissen, wo ich falsch gelaufen bin.

+0

duplizieren? http://stackoverflow.com/questions/4278438/slf4j-logging-with-jdk-how-to-enable-debug – hd1

+0

Ich habe die Log-Ebene zu FINE geändert, die in der obigen Link erwähnt, aber immer noch ich bekomme nicht die DEBUG Level-Protokollierung. –

+0

Die Lösung, die Sie gaben, half mir nicht, mein Problem zu lösen. Ich habe meinen Beitrag mit der Konfiguration meiner Eigenschaftendatei aktualisiert. –

Antwort

7

Ich habe dieses Problem mit Hilfe von Balgpost gelöst.

slf4j logging with jdk – how to enable debug?

Für DEBUG Level Protokollierung in SLF4J wir haben FINE Ebene in java.util.logging abzubilden.

Und wir müssen die Standard-Logging-Ebene als FINE oder niedrigere Ebene von FINE setzen. Dies kann erreicht werden, indem die Balgelinie in die Protokollierungskonfigurationsdatei eingefügt wird.

.level = FINE

0

Ein weiteres Problem, das Sie haben, ist, dass, obwohl Sie einen Handler definiert haben, haben Sie es zu irgendwelchen Logger nicht zugeordnet.

Um es zu dem Stamm Logger zuzuweisen, verwenden

.handlers=com.amc.logging.handlers.DebugLogHandler 

es in Ihrer Anwendung einen Logger zuzuweisen, definieren den Logger

com.company.application.package.level=FINE 

und ordnen Sie Ihre Handler es: com.company.application.package.handlers=com.amc.logging.handlers.DebugLogHandler

Auch ist com.amc.logging.handlers.DebugLogHandler eine Klasse, die Sie selbst definiert? Ist es in deinem Klassenpfad? Denn sonst glaube ich nicht, dass java.util.logging (JUL) es erkennen wird.

Versuchen Sie eine der Handler, die mit Juli kommt:

handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler 

Und konfigurieren, dass sie mit der Ebene, melden Sie sich Lage und Format, das Sie wollen.

Hier ist ein Beispiel logging.properties Datei: https://tomcat.apache.org/tomcat-6.0-doc/logging.html#Using_java.util.logging_(default)

Es verwendet Handler von Apache Juli Implementierung, sondern ersetzt nur mit Klassen von Juli: https://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html