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 .