log4j - Konfiguration
Im vorherigen Kapitel wurden die Kernkomponenten von log4j erläutert. In diesem Kapitel wird erläutert, wie Sie die Kernkomponenten mithilfe einer Konfigurationsdatei konfigurieren können. Zum Konfigurieren von log4j müssen Sie die Ebene zuweisen, Appender definieren und Layoutobjekte in einer Konfigurationsdatei angeben.
Das log4j.propertiesfile ist eine log4j-Konfigurationsdatei, die Eigenschaften in Schlüssel-Wert-Paaren speichert. Standardmäßig sucht der LogManager nach einer Datei mit dem Namenlog4j.properties in dem CLASSPATH.
Die Ebene des Root-Loggers ist definiert als DEBUG. DasDEBUG Hängt den Appender mit dem Namen X an.
Stellen Sie den Appender mit dem Namen X als gültigen Appender ein.
Legen Sie das Layout für den Appender X fest.
log4j.properties Syntax:
Es folgt die Syntax der Datei log4j.properties für einen Appender X:
# Define the root logger with appender X
log4j.rootLogger = DEBUG, X
# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender
# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n
log4j.properties Beispiel
Mit der obigen Syntax definieren wir Folgendes in log4j.properties Datei:
Die Ebene des Root-Loggers ist definiert als DEBUG, Das DEBUG Appender benannt FILE dazu.
Der Appender FILE ist definiert als org.apache.log4j.FileAppender. Es schreibt in eine Datei mit dem Namenlog.out liegt in den log Verzeichnis.
Das definierte Layoutmuster ist % m% n , was bedeutet, dass auf die gedruckte Protokollierungsnachricht ein Zeilenumbruchzeichen folgt.
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Es ist wichtig zu beachten, dass log4j die Substitution von Variablen im UNIX-Stil wie $ {variableName} unterstützt.
Debug-Ebene
Wir haben DEBUG mit beiden Appendern verwendet. Alle möglichen Optionen sind:
- TRACE
- DEBUG
- INFO
- WARN
- ERROR
- FATAL
- ALL
Diese Ebenen werden später in diesem Lernprogramm erläutert.
Appenders
Apache log4j bietet Appender-Objekte, die hauptsächlich für das Drucken von Protokollnachrichten an verschiedene Ziele wie Konsolen, Dateien, Sockets, NT-Ereignisprotokolle usw. verantwortlich sind.
Jedem Appender-Objekt sind unterschiedliche Eigenschaften zugeordnet. Diese Eigenschaften geben das Verhalten dieses Objekts an.
Eigentum | Beschreibung |
---|---|
Layout | Appender verwendet die Layoutobjekte und das ihnen zugeordnete Konvertierungsmuster, um die Protokollierungsinformationen zu formatieren. |
Ziel | Das Ziel kann je nach Appender eine Konsole, eine Datei oder ein anderes Element sein. |
Niveau | Die Ebene ist erforderlich, um die Filterung der Protokollnachrichten zu steuern. |
Schwelle | Appender kann unabhängig von der Logger-Ebene ein Schwellenwert zugeordnet werden. Der Appender ignoriert alle Protokollierungsnachrichten, deren Pegel unter dem Schwellenwert liegt. |
Filter | Die Filterobjekte können Protokollinformationen analysieren, die über die Ebenenübereinstimmung hinausgehen, und entscheiden, ob Protokollierungsanforderungen von einem bestimmten Appender verarbeitet oder ignoriert werden sollen. |
Wir können einem Logger ein Appender-Objekt hinzufügen, indem wir die folgende Einstellung mit der folgenden Methode in die Konfigurationsdatei aufnehmen:
log4j.logger.[logger-name]=level, appender1,appender..n
Sie können dieselbe Konfiguration im XML-Format wie folgt schreiben:
<logger name="com.apress.logging.log4j" additivity="false">
<appender-ref ref="appender1"/>
<appender-ref ref="appender2"/>
</logger>
Wenn Sie bereit sind, ein Appender-Objekt in Ihr Programm aufzunehmen, können Sie die folgende Methode verwenden:
public void addAppender(Appender appender);
Die Methode addAppender () fügt dem Logger-Objekt einen Appender hinzu. Wie die Beispielkonfiguration zeigt, können einem Logger in einer durch Kommas getrennten Liste viele Appender-Objekte hinzugefügt werden, wobei jede Protokollinformation an separate Ziele gedruckt wird.
In unserem obigen Beispiel haben wir nur einen Appender FileAppender verwendet . Alle möglichen Appender-Optionen sind:
- AppenderSkeleton
- AsyncAppender
- ConsoleAppender
- DailyRollingFileAppender
- ExternallyRolledFileAppender
- FileAppender
- JDBCAppender
- JMSAppender
- LF5Appender
- NTEventLogAppender
- NullAppender
- RollingFileAppender
- SMTPAppender
- SocketAppender
- SocketHubAppender
- SyslogAppender
- TelnetAppender
- WriterAppender
Wir würden FileAppender in Logging in Files behandeln und JDBC Appender würde in Logging in Database behandelt .
Layout
Wir haben PatternLayout mit unserem Appender verwendet. Alle möglichen Optionen sind:
- DateLayout
- HTMLLayout
- PatternLayout
- SimpleLayout
- XMLLayout
Mit HTMLLayout und XMLLayout können Sie Protokolle im HTML- und im XML-Format erstellen.
Layout-Formatierung
Informationen zum Formatieren einer Protokollnachricht finden Sie im Kapitel: Protokollformatierung .