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_OUToSYSTEM_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 ConsoleAppenderde é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 FileAppenderde é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 filePatternespecifica 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