5.1 Lista de filtros
El registrador le permite configurar muy bien el filtrado de mensajes. Para ello, dispone de un par de decenas de filtros con todo tipo de parámetros. La siguiente tabla muestra los más populares.
filtros | Descripción | |
---|---|---|
1 | Filtro de ráfaga | Le permite controlar la frecuencia de mensajes por segundo para un nivel de registro determinado. |
2 | Filtro compuesto | Le permite establecer múltiples filtros secuenciales. |
3 | Filtro de umbral dinámico | Le permite habilitar el registro detallado si se encuentra cierta información en el registro. |
4 | filtro de mapa | Le permite construir una expresión lógica compleja para el filtro a partir de varios parámetros. |
5 | MarcadorFiltro | Le permite filtrar mensajes por etiquetas, primero se debe agregar la etiqueta durante el registro de eventos. |
6 | RegexFilter | Le permite establecer una máscara, una expresión regular. |
7 | Filtro de datos estructurados | Le permite filtrar los mensajes por la presencia de ciertos datos en ellos. |
8 | SubprocesoContextoMapaFiltro | Le permite administrar filtros basados en datos tomados del contexto del hilo actual. |
9 | Filtro de umbral | Controla el registro en función del nivel del mensaje de registro. |
10 | Filtro de tiempo | Le permite activar y desactivar los filtros en momentos específicos. |
A continuación hablaremos de solo tres de ellos. Puedes conocer más sobre estos filtros en su web oficial .
5.2 Filtro de tiempo
El filtro TimeFilter
te permite activar y desactivar filtros en un momento determinado, tiene 5 parámetros:
1 | comenzar | Hora de inicio de registro en el formatoHH:mm:ss |
2 | fin | Hora de cierre de sesión en el formatoHH:mm:ss |
3 | zona horaria | Establece la zona horaria. |
4 | enPartido | Cómo registrar si la condición del filtro es verdadera . Tal vez ACCEPT , DENY o NEUTRAL . predeterminado NEUTRAL _ |
5 | onMismatch | Cómo iniciar sesión si la condición del filtro es falsa . Tal vez ACCEPT , DENY o NEUTRAL . predeterminado NEUTRAL _ |
Configuremos un filtro que active el registro a las 5 a. m. y lo apague a las 5:30 a. m. todos los días. A continuación se muestra un ejemplo con una configuración de filtro completa:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<TimeFilter start="05:00:00" end="05:30:00" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
5.3 Filtro Regex
El filtro RegexFilter
le permite establecer una máscara (expresión regular) para filtrar mensajes. Este filtro tiene 4 parámetros:
1 | expresiones regulares | Especifica una expresión regular, una máscara que se usa para filtrar mensajes.HH:mm:ss |
2 | usarRawMsg | La máscara se aplica en el mensaje antes de formatear (verdadero) o después de formatear (falso) |
3 | enPartido | Cómo registrar si la condición del filtro es verdadera . Tal vez ACCEPT , DENY o NEUTRAL . predeterminado NEUTRAL _ |
4 | onMismatch | Cómo iniciar sesión si la condición del filtro es falsa . Tal vez ACCEPT , DENY o NEUTRAL . predeterminado NEUTRAL _ |
Configuremos un filtro que solo permita mensajes que contengan la palabra codegym. A continuación se muestra un ejemplo con una configuración de filtro completa:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<RegexFilter regex=".* codegym .*" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
5.4 Filtro de umbral
El filtro ThresholdFilter le permite configurar el filtrado por nivel de mensaje. Tiene solo 3 parámetros:
1 | nivel | Establece el nombre del nivel de registro de mensajes: ERROR , DEBUG , ... |
2 | enPartido | Cómo registrar si la condición del filtro es verdadera . Tal vez ACCEPT , DENY o NEUTRAL . predeterminado NEUTRAL _ |
3 | onMismatch | Cómo iniciar sesión si la condición del filtro es falsa . Tal vez ACCEPT , DENY o NEUTRAL . predeterminado NEUTRAL _ |
Configuremos un filtro que solo permita mensajes de nivel DEBUG
. A continuación se muestra un ejemplo con una configuración de filtro completa:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %c{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>