Lista de anexadores
El registrador le permite guardar datos en varios archivos a la vez. Estos flujos de datos de salida se denominan appenders (de append). Hay bastantes appenders estándar, por lo que solo cubriremos los más populares:
Anexadores | Descripción | |
---|---|---|
1 | Consola | Imprime datos en la consola. |
2 | Archivo | Envía datos a un archivo |
3 | DailyRollingFile | Envía datos a un archivo, el archivo se sobrescribe cíclicamente |
4 | asíncrono | Le permite escribir datos en otro appender de forma asíncrona |
5 | Enchufe | Escribe datos en un socket específico |
6 | JDBC | Escribe mensajes en la base de datos usando el protocolo JDBC |
7 | JPA | Escribe mensajes en la base de datos usando el protocolo JPA |
8 | http | Envía eventos a través del protocolo HTTP a un servidor remoto |
9 | SMTP | Almacena mensajes en un búfer y luego los envía como un correo electrónico |
Buena documentación para todos los appenders está en su sitio web oficial
Y a continuación consideraremos los más populares y simples de ellos.
ConsoleAppender
El appender más simple esConsoleApender
. Como habrás adivinado, simplemente escribe sus mensajes en la consola. Tiene varios parámetros interesantes para nosotros:
Atributos | ||
---|---|---|
1 | nombre | Nombre del agregador |
2 | filtrar | Le permite filtrar algunos mensajes. |
3 | disposición | Especifica el formato de los mensajes cuando se envían |
4 | objetivo | Especifica dónde escribir: SYTEM_OUT oSYSTEM_ERR |
Es muy fácil configurarlo:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%m%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
FileAppender
El appender más útil esFileAppender
. A diferencia ConsoleAppender
de él, escribe sus mensajes en un archivo. Lo cual es muy útil cuando su aplicación se ejecuta en algún lugar del servidor. Tiene muchos parámetros, porque debe ser capaz de escribir archivos en diferentes sistemas operativos.
Pero consideraremos solo los más populares.
1 | nombre | Especifica el nombre del agregador |
2 | filtrar | Le permite filtrar algunos mensajes. |
3 | disposición | Especifica el formato de los mensajes cuando se envían |
4 | Nombre del archivo | Especifica el nombre del archivo donde escribir mensajes |
5 | adjuntar | Si true , los mensajes se agregarán al registro antiguo, si false - el archivo de registro se volverá a crear cada vez que se inicie la aplicación. |
6 | tamaño del búfer | Establece el tamaño del búfer en bytes |
7 | descarga inmediata | Si true , entonces cada mensaje se escribe en el disco inmediatamente (sin un búfer). El registro comienza a funcionar lentamente, pero esto le evita perder datos cuando el programa falla. |
Ya sabe cómo trabajar bien con archivos, por lo que esta configuración no es nada nuevo para usted. Configurar un registrador de este tipo es incluso más fácil que un registrador de consola:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<File name="MyFile" fileName="logs/app.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="MyFile"/>
</Root>
</Loggers>
</Configuration>
RollingFileAppender
El agregador más popular esRollingFileAppender
. A diferencia FileAppender
de él, le permite dividir el registro en muchos archivos pequeños. Esto es muy importante para troncos grandes. Además, le permite establecer reglas sobre qué hacer con los archivos antiguos después de que se hayan comenzado a escribir los nuevos.
Y este appender tiene casi cien configuraciones diferentes. Puedes saber más sobre ellos en el enlace .
Considere los atributos más populares de este appender:
Atributos | ||
---|---|---|
1 | nombre | Especifica el nombre del agregador |
2 | filtrar | Le permite filtrar algunos mensajes. |
3 | disposición | Especifica el formato de los mensajes cuando se envían |
4 | Nombre del archivo | Especifica el nombre del archivo donde escribir mensajes |
5 | patrón de archivo | Especifica un patrón de nomenclatura para los archivos de almacenamiento que ya no se escriben |
6 | política | Especifica la condición cuando el archivo debe comenzar a sobrescribirse |
7 | estrategia | Describe qué hacer con los archivos antiguos: archivo, historial de cuántos días guardar, etc. |
Aquí hay un buen ejemplo:
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
El parámetro filePattern
especifica una plantilla para archivos de registros antiguos. También hay dos, cuando se activa, se escribirá un nuevo archivo:
TimeBasedTriggeringPolicy
– funcionará si comienza un nuevo día (la fecha actual cambia)SizeBasedTriggeringPolicy
– funcionará si el tamaño del archivo alcanza los 250 MB