log4j - Anmelden von Dateien
Um Ihre Protokollinformationen in eine Datei zu schreiben, müssten Sie verwenden org.apache.log4j.FileAppender.
FileAppender-Konfiguration
FileAppender hat die folgenden konfigurierbaren Parameter:
Eigentum | Beschreibung |
---|---|
sofortFlush | Dieses Flag ist standardmäßig auf true gesetzt. Dies bedeutet, dass der Ausgabestream in die Datei bei jedem Anhängevorgang gelöscht wird. |
Codierung | Es ist möglich, eine beliebige Zeichenkodierung zu verwenden. Standardmäßig ist dies das plattformspezifische Codierungsschema. |
Schwelle | Der Schwellenwert für diesen Appender. |
Dateiname | Der Name der Protokolldatei. |
fileAppend | Dies ist standardmäßig auf true festgelegt. Dies bedeutet, dass die Protokollierungsinformationen an das Ende derselben Datei angehängt werden. |
bufferedIO | Dieses Flag zeigt an, ob gepuffertes Schreiben aktiviert sein muss. Standardmäßig ist false festgelegt. |
Puffergröße | Wenn gepufferte E / A aktiviert ist, wird die Puffergröße angezeigt. Standardmäßig ist es auf 8 KB eingestellt. |
Es folgt eine Beispielkonfigurationsdatei log4j.properties für FileAppender -
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
# Set the name of the file
log4j.appender.FILE.File=${log}/log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
# Set the append to false, overwrite
log4j.appender.FILE.Append=false
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Wenn Sie eine XML-Konfigurationsdatei wünschen, die der oben genannten entspricht log4j.properties Datei, dann ist hier der Inhalt:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
<appender name="FILE" class="org.apache.log4j.FileAppender">
<param name="file" value="${log}/log.out"/>
<param name="immediateFlush" value="true"/>
<param name="threshold" value="debug"/>
<param name="append" value="false"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern" value="%m%n"/>
</layout>
</appender>
<logger name="log4j.rootLogger" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="FILE"/>
</logger>
</log4j:configuration>
Sie können log4j - Beispielprogramm mit der obigen Konfiguration ausprobieren .
Anmelden mehrerer Dateien
Möglicherweise möchten Sie Ihre Protokollnachrichten aus bestimmten Gründen in mehrere Dateien schreiben, z. B. wenn die Dateigröße einen bestimmten Schwellenwert erreicht hat.
Um Ihre Protokollinformationen in mehrere Dateien zu schreiben, müssten Sie verwenden org.apache.log4j.RollingFileAppender Klasse, die die erweitert FileAppender Klasse und erbt alle seine Eigenschaften.
Wir haben die folgenden konfigurierbaren Parameter zusätzlich zu den oben für FileAppender genannten -
Eigentum | Beschreibung |
---|---|
Maximale Dateigröße | Dies ist die kritische Größe der Datei, über die die Datei gerollt wird. Der Standardwert ist 10 MB. |
maxBackupIndex | Diese Eigenschaft gibt die Anzahl der zu erstellenden Sicherungsdateien an. Der Standardwert ist 1. |
Es folgt eine Beispielkonfigurationsdatei log4j.properties für RollingFileAppender.
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
# Set the name of the file
log4j.appender.FILE.File=${log}/log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
# Set the append to false, should not overwrite
log4j.appender.FILE.Append=true
# Set the maximum file size before rollover
log4j.appender.FILE.MaxFileSize=5MB
# Set the the backup index
log4j.appender.FILE.MaxBackupIndex=2
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Wenn Sie eine XML-Konfigurationsdatei haben möchten, können Sie dieselbe wie im ersten Abschnitt erwähnt generieren und nur zusätzliche Parameter hinzufügen, die sich auf beziehen RollingFileAppender.
Diese Beispielkonfiguration zeigt, dass die maximal zulässige Größe jeder Protokolldatei 5 MB beträgt. Bei Überschreitung der maximalen Größe wird eine neue Protokolldatei erstellt. Schon seitmaxBackupIndex wird als 2 definiert. Sobald die zweite Protokolldatei die maximale Größe erreicht hat, wird die erste Protokolldatei gelöscht und danach werden alle Protokollierungsinformationen auf die erste Protokolldatei zurückgesetzt.
Sie können log4j - Beispielprogramm mit der obigen Konfiguration ausprobieren .
Tägliche Generierung von Protokolldateien
Möglicherweise müssen Sie Ihre Protokolldateien täglich generieren, um Ihre Protokollinformationen sauber aufzuzeichnen.
Um Ihre Protokollinformationen täglich in Dateien zu schreiben, müssten Sie verwenden org.apache.log4j.DailyRollingFileAppender Klasse, die die erweitert FileAppender Klasse und erbt alle seine Eigenschaften.
Zusätzlich zu den oben für FileAppender genannten Parametern gibt es nur einen wichtigen konfigurierbaren Parameter:
Eigentum | Beschreibung |
---|---|
DatePattern | Dies gibt an, wann die Datei verschoben werden soll und welche Namenskonvention befolgt werden muss. Standardmäßig wird der Rollover jeden Tag um Mitternacht durchgeführt. |
DatePattern steuert den Rollover-Zeitplan mithilfe eines der folgenden Muster:
DatePattern | Beschreibung |
---|---|
'.' JJJJ-MM | Rollover am Ende eines jeden Monats und am Anfang des nächsten Monats. |
'.' JJJJ-MM-TT | Drehen Sie sich jeden Tag um Mitternacht um. Dies ist der Standardwert. |
'.' JJJJ-MM-TT-A | Drehen Sie sich jeden Tag um Mittag und Mitternacht um. |
'.' JJJJ-MM-TT-HH | Drehen Sie sich zu jeder vollen Stunde um. |
'.' JJJJ-MM-TT-HH-mm | Jede Minute rollen. |
'.' JJJJ-ww | Fahren Sie je nach Gebietsschema am ersten Tag jeder Woche um. |
Es folgt eine Beispielkonfigurationsdatei log4j.properties um Protokolldateien zu generieren, die jeden Tag um 12.00 Uhr und Mitternacht übertragen werden.
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
# Set the name of the file
log4j.appender.FILE.File=${log}/log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
# Set the append to false, should not overwrite
log4j.appender.FILE.Append=true
# Set the DatePattern
log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Wenn Sie eine XML-Konfigurationsdatei haben möchten, können Sie dieselbe wie im ersten Abschnitt erwähnt generieren und nur zusätzliche Parameter hinzufügen, die sich auf beziehen DailyRollingFileAppender.
Sie können log4j - Beispielprogramm mit der obigen Konfiguration ausprobieren .