Ich habe log4j
Eigenschaften wie unten. Alles, was angemeldet TextProcessor.log
ist, liegt über der WARN-Ebene. Ich verstehe den hier zum Debuggen festgelegten Schwellenwert nicht. Kann jemand erklären, was die Schwelle bewirkt?
log4j.logger.TextProcessor=warn,TextProcessor
log4j.appender.TextProcessor=org.apache.log4j.RollingFileAppender
log4j.appender.TextProcessor.File=C:/project/logs/TextProcessor.log
log4j.appender.TextProcessor.MaxFileSize=10MB
log4j.appender.TextProcessor.MaxBackupIndex=10
log4j.appender.TextProcessor.Threshold=debug
log4j.appender.TextProcessor.layout=org.apache.log4j.PatternLayout
log4j.appender.TextProcessor.layout.ConversionPattern=[%d] [%5p] (%F:%L) - %m%n
Antworten:
Sie haben hier zwei Dinge: einen Logger und einen Appender. Leider haben Sie für beide den gleichen Namen gewählt, was nicht sehr deutlich macht.
Die Mindeststufe des Loggers ist auf Warnung eingestellt. Dies bedeutet, dass alles, was Sie mit diesem Logger protokollieren, der nicht mindestens die Warnstufe hat, ignoriert wird.
Sobald eine Nachricht vom Logger akzeptiert wurde, wird sie an einen oder mehrere Appender gesendet (an eine Datei, an die Konsole, an einen Mailserver usw.). Jeder dieser Appender kann einen Schwellenwert definieren. Sie können beispielsweise die Nachrichten in der Konsole auf Fehler beschränken, aber Warnmeldungen in der Protokolldatei akzeptieren.
quelle
Der Schwellenwert ist der zweite Filter für zu protokollierende Nachrichten
z.B:
Wenn Logger auf Stufe DEBUG und Appender-Schwellenwert auf Fehler eingestellt ist, werden mit dem Appender TextProcessor nur Fehler- und Nachrichten mit höherem Schweregrad protokolliert.
Mit dem Schwellenwert können Sie verschiedene Appender mit unterschiedlichen Schwellenwerten definieren. In dem oben genannten Beispiel können Sie beispielsweise auch InfoLogger mit aktivierter Nachrichtenprotokollierung auf Info-Ebene aktivieren
Um die Ebenen zu verstehen, gibt es in log4j folgende Protokollierungsebenen :
Gehe zu URL für weitere Details
quelle
Die Protokollierungsebene sind
TRACE
,DEBUG
,INFO
,WARN
,ERROR
undFATAL
. Je nach Schweregrad können Sie auswählen, was auf welcher Ebene im Code protokolliert werden soll. Sie haben beispielsweise die Möglichkeit, den Ein- und Ausgang von Methoden zu protokollieren, können sich jedoch dafür entscheiden, auf derDEBUG
Ebene zu protokollieren . Auf diese Weise können Sie den Code debuggen, da er standardmäßig auf der Konsole gedruckt wird (der Standard-Konsolen-Appender ist aktiviert). Während Sie zur Produktion gehen, können Sie den Schwellenwert erhöhenERROR
und verhindern, dass die Anwendung nicht so nützliche Details auf der Konsole oder in Protokolldateien druckt.quelle
Geben Sie eine einfache Zuordnung von der Eigenschaftenkonfigurationsdatei zum Ablauf von Protokollnachrichten. (Ich habe einige Konfigurationszeilen versteckt, um sie zu minimieren)
Um zu verstehen, was es ist, sollten Sie Folgendes wissen:
** Vererbung und Additivität sind etwas komplexer, aber Sie sollten zuerst mit grundlegenden und einfachen Dingen beginnen.
quelle