log4j - Iniciar sesión en archivos
Para escribir su información de registro en un archivo, tendría que usar org.apache.log4j.FileAppender.
Configuración de FileAppender
FileAppender tiene los siguientes parámetros configurables:
Propiedad | Descripción |
---|---|
InmediatoFlush | Este indicador se establece de forma predeterminada en verdadero, lo que significa que el flujo de salida del archivo se vacía con cada operación de adición. |
codificacion | Es posible utilizar cualquier codificación de caracteres. De forma predeterminada, es el esquema de codificación específico de la plataforma. |
límite | El nivel de umbral para este appender. |
Nombre del archivo | El nombre del archivo de registro. |
fileAppend | Esto se establece de forma predeterminada en verdadero, lo que significa que la información de registro se agrega al final del mismo archivo. |
bufferIO | Esta bandera indica si necesitamos la escritura en búfer habilitada. De forma predeterminada, se establece en falso. |
tamaño del búfer | Si la E / S almacenada en búfer está habilitada, indica el tamaño del búfer. De forma predeterminada, está configurado en 8 kb. |
A continuación se muestra un archivo de configuración de muestra log4j.properties para 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
Si desea tener un archivo de configuración XML equivalente al anterior log4j.properties archivo, entonces aquí está el contenido:
<?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>
Puede probar log4j - Programa de muestra con la configuración anterior.
Iniciar sesión en varios archivos
Es posible que desee escribir sus mensajes de registro en varios archivos por ciertas razones, por ejemplo, si el tamaño del archivo alcanzó un cierto umbral.
Para escribir su información de registro en varios archivos, tendría que usar org.apache.log4j.RollingFileAppender clase que extiende el FileAppender class y hereda todas sus propiedades.
Tenemos los siguientes parámetros configurables además de los mencionados anteriormente para FileAppender:
Propiedad | Descripción |
---|---|
Tamaño máximo de archivo | Este es el tamaño crítico del archivo por encima del cual se desplazará el archivo. El valor predeterminado es 10 MB. |
maxBackupIndex | Esta propiedad denota la cantidad de archivos de respaldo que se crearán. El valor predeterminado es 1. |
A continuación se muestra un archivo de configuración de muestra log4j.properties para 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
Si desea tener un archivo de configuración XML, puede generar el mismo que se menciona en la sección inicial y agregar solo parámetros adicionales relacionados con RollingFileAppender.
Esta configuración de ejemplo demuestra que el tamaño máximo permitido de cada archivo de registro es de 5 MB. Al exceder el tamaño máximo, se creará un nuevo archivo de registro. Ya quemaxBackupIndex se define como 2, una vez que el segundo archivo de registro alcance el tamaño máximo, el primer archivo de registro se borrará y, a partir de entonces, toda la información de registro se revertirá al primer archivo de registro.
Puede probar log4j - Programa de muestra con la configuración anterior.
Generación diaria de archivos de registro
Puede ser necesario generar sus archivos de registro a diario para mantener un registro limpio de su información de registro.
Para escribir su información de registro en archivos a diario, tendría que usar org.apache.log4j.DailyRollingFileAppender clase que extiende el FileAppender class y hereda todas sus propiedades.
Solo hay un parámetro configurable importante además de los mencionados anteriormente para FileAppender:
Propiedad | Descripción |
---|---|
DatePattern | Esto indica cuándo pasar el archivo y la convención de nomenclatura que se debe seguir. De forma predeterminada, la renovación se realiza a la medianoche todos los días. |
DatePattern controla la programación de rollover utilizando uno de los siguientes patrones:
DatePattern | Descripción |
---|---|
'.' aaaa-MM | Pasa al final de cada mes y al comienzo del mes siguiente. |
'.' aaaa-MM-dd | Dé la vuelta a la medianoche todos los días. Este es el valor predeterminado. |
'.' aaaa-MM-dd-a | Dé la vuelta al mediodía y a la medianoche de cada día. |
'.' aaaa-MM-dd-HH | Da la vuelta al principio de cada hora. |
'.' aaaa-MM-dd-HH-mm | Pasa cada minuto. |
'.' aaaa-ww | Pase el primer día de cada semana según el lugar. |
A continuación se muestra un archivo de configuración de muestra log4j.properties para generar archivos de registro renovados al mediodía y la medianoche de cada día.
# 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
Si desea tener un archivo de configuración XML, puede generar el mismo que se menciona en la sección inicial y agregar solo parámetros adicionales relacionados con DailyRollingFileAppender.
Puede probar log4j - Programa de muestra con la configuración anterior.