log4j - Accesso ai file
Per scrivere le tue informazioni di registrazione in un file, dovresti usare org.apache.log4j.FileAppender.
Configurazione di FileAppender
FileAppender ha i seguenti parametri configurabili:
Proprietà | Descrizione |
---|---|
immediatoFlush | Questo flag è impostato per impostazione predefinita su true, il che significa che il flusso di output del file viene scaricato con ogni operazione di accodamento. |
codifica | È possibile utilizzare qualsiasi codifica dei caratteri. Per impostazione predefinita, è lo schema di codifica specifico della piattaforma. |
soglia | Il livello di soglia per questo appender. |
Nome del file | Il nome del file di registro. |
fileAppend | Per impostazione predefinita, è impostato su true, il che significa che le informazioni di registrazione vengono aggiunte alla fine dello stesso file. |
bufferedIO | Questo flag indica se è necessaria la scrittura bufferizzata abilitata. Per impostazione predefinita, è impostato su false. |
dimensione buffer | Se l'I / O bufferizzato è abilitato, indica la dimensione del buffer. Per impostazione predefinita, è impostato su 8kb. |
Di seguito è riportato un file di configurazione di esempio log4j.properties per 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
Se desideri avere un file di configurazione XML equivalente a quanto sopra log4j.properties file, quindi ecco il contenuto:
<?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>
Puoi provare log4j - Programma di esempio con la configurazione di cui sopra.
Accesso a più file
Potresti voler scrivere i tuoi messaggi di log in più file per determinati motivi, ad esempio, se la dimensione del file ha raggiunto una certa soglia.
Per scrivere le tue informazioni di registrazione in più file, dovresti usare org.apache.log4j.RollingFileAppender classe che estende la FileAppender class ed eredita tutte le sue proprietà.
Abbiamo i seguenti parametri configurabili oltre a quelli menzionati sopra per FileAppender:
Proprietà | Descrizione |
---|---|
maxFileSize | Questa è la dimensione critica del file al di sopra della quale verrà eseguito il rollio. Il valore predefinito è 10 MB. |
maxBackupIndex | Questa proprietà denota il numero di file di backup da creare. Il valore predefinito è 1. |
Di seguito è riportato un file di configurazione di esempio log4j.properties per 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
Se desideri avere un file di configurazione XML, puoi generare lo stesso menzionato nella sezione iniziale e aggiungere solo parametri aggiuntivi relativi a RollingFileAppender.
Questa configurazione di esempio dimostra che la dimensione massima consentita di ogni file di registro è 5 MB. Al superamento della dimensione massima, verrà creato un nuovo file di registro. DamaxBackupIndex è definito come 2, una volta che il secondo file di registro raggiunge la dimensione massima, il primo file di registro verrà cancellato e, successivamente, tutte le informazioni di registrazione verranno riportate al primo file di registro.
Puoi provare log4j - Programma di esempio con la configurazione di cui sopra.
Generazione giornaliera di file di registro
Potrebbe essere necessario generare i file di registro su base giornaliera per mantenere un registro pulito delle informazioni di registrazione.
Per scrivere le tue informazioni di accesso nei file su base giornaliera, dovresti usare org.apache.log4j.DailyRollingFileAppender classe che estende la FileAppender class ed eredita tutte le sue proprietà.
C'è solo un importante parametro configurabile oltre a quelli sopra menzionati per FileAppender:
Proprietà | Descrizione |
---|---|
DatePattern | Indica quando eseguire il rollover del file e la convenzione di denominazione da seguire. Per impostazione predefinita, il rollover viene eseguito a mezzanotte ogni giorno. |
DatePattern controlla la pianificazione del rollover utilizzando uno dei seguenti modelli:
DatePattern | Descrizione |
---|---|
"." aaaa-MM | Rollover alla fine di ogni mese e all'inizio del mese successivo. |
"." aaaa-MM-gg | Rollover a mezzanotte ogni giorno. Questo è il valore predefinito. |
"." aaaa-MM-gg-a | Rollover a mezzogiorno e mezzanotte di ogni giorno. |
"." aaaa-MM-gg-HH | Rotola sopra ogni ora. |
"." aaaa-MM-gg-HH-mm | Rotola ogni minuto. |
"." yyyy-ww | Rollover il primo giorno di ogni settimana a seconda della località. |
Di seguito è riportato un file di configurazione di esempio log4j.properties per generare file di registro che si spostano a mezzogiorno e mezzanotte di ogni giorno.
# 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
Se desideri avere un file di configurazione XML, puoi generare lo stesso menzionato nella sezione iniziale e aggiungere solo parametri aggiuntivi relativi a DailyRollingFileAppender.
Puoi provare log4j - Programma di esempio con la configurazione di cui sopra.