Heim >Java >javaLernprogramm >Wie kann ich Log4j so konfigurieren, dass unterschiedliche Protokollierungsstufen an separate Appender und Protokolldateien gesendet werden?

Wie kann ich Log4j so konfigurieren, dass unterschiedliche Protokollierungsstufen an separate Appender und Protokolldateien gesendet werden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-29 17:29:02907Durchsuche

How can I configure Log4j to send different logging levels to separate appenders and log files?

Protokollierung verschiedener Ebenen und Inhalte mit Log4j

Frage:

Kann log4j so konfiguriert werden? unterschiedliche Protokollierungsstufen an separate Appender weiterleiten? Das Ziel besteht darin, mehrere Protokolldateien mit spezifischem Inhalt zu erstellen, z. B. ein Hauptprotokoll, das alle INFO- und oben genannten Nachrichten auffängt, während ein anderes Protokoll DEBUG-Nachrichten nur für eine ausgewählte Gruppe von Klassen erfasst.

Antwort:

Log4j für mehrere Protokolldateien konfigurieren

Log4j ermöglicht die Anpassung der Protokollierung an mehrere Ziele über Appender. Um die gewünschte Konfiguration zu erreichen:

  1. Definieren Sie mehrere Appender: Erstellen Sie zunächst separate Appender für jeden Protokolltyp. Weisen Sie ihnen entsprechende Dateiattribute zu, um das Ziel ihrer Protokolldatei anzugeben. Legen Sie den Schwellenwert fest, um die Protokollierungsstufe für jeden Appender zu steuern (z. B. INFO für das Hauptprotokoll und DEBUG für bestimmte Klassen).
  2. Root Logger konfigurieren: Die Option rootLogger bestimmt, wo die gesamte Protokollierung anfänglich erfolgt gesendet. Konfigurieren Sie es so, dass Protokolle an die Appender gesendet werden, die Sie zuvor erstellt haben.
  3. Logger-Ebenen festlegen: Verwenden Sie die Eigenschaft log4j.logger, um bestimmte Protokollierungsebenen für verschiedene Klassen oder Pakete festzulegen. Dadurch können Sie den Detaillierungsgrad, der für jede Klasse protokolliert wird, selektiv steuern.

Beispielkonfiguration:

log4j.rootLogger=QuietAppender, LoudAppender, TRACE
# setup main log
log4j.appender.QuietAppender=org.apache.log4j.RollingFileAppender
log4j.appender.QuietAppender.Threshold=INFO
log4j.appender.QuietAppender.File=quiet.log

# setup specific log
log4j.appender.LoudAppender=org.apache.log4j.RollingFileAppender
log4j.appender.LoudAppender.Threshold=DEBUG
log4j.appender.LoudAppender.File=loud.log

# set logging level for specific classes
log4j.logger.com.yourpackage.yourclazz=TRACE

Mit dieser Konfiguration wird das „quiet. log‘ enthält alle INFO- und oben genannten Meldungen für alle Klassen, während „loud.log“ nur DEBUG-Meldungen für die angegebene Klasse „yourclazz“ enthält.

Das obige ist der detaillierte Inhalt vonWie kann ich Log4j so konfigurieren, dass unterschiedliche Protokollierungsstufen an separate Appender und Protokolldateien gesendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn