5.1 Elenco dei filtri
Il logger ti consente di configurare molto freddamente il filtro dei messaggi. Per fare questo, ha un paio di dozzine di filtri con tutti i tipi di parametri. La tabella seguente mostra i più popolari.
| Filtri | Descrizione | |
|---|---|---|
| 1 | BurstFilter | Consente di controllare la frequenza dei messaggi al secondo per un determinato livello di registrazione. |
| 2 | Filtro Composito | Consente di impostare più filtri sequenziali. |
| 3 | DynamicThresholdFilter | Consente di abilitare la registrazione dettagliata se vengono trovate determinate informazioni nel registro. |
| 4 | Filtro mappa | Consente di creare un'espressione logica complessa per il filtro da diversi parametri. |
| 5 | Filtro marcatore | Consente di filtrare i messaggi per tag, il tag deve essere prima aggiunto durante la registrazione dell'evento. |
| 6 | Filtro Regex | Consente di impostare una maschera, un'espressione regolare. |
| 7 | Filtro dati strutturati | Consente di filtrare i messaggi in base alla presenza di determinati dati in essi contenuti. |
| 8 | ThreadContextMapFilter | Consente di gestire i filtri in base ai dati presi dal contesto del thread corrente. |
| 9 | Filtro soglia | Controlla la registrazione in base al livello del messaggio di registro. |
| 10 | Filtro orario | Consente di attivare e disattivare i filtri in orari specifici. |
Di seguito ne parleremo solo tre. Puoi saperne di più su questi filtri sul loro sito ufficiale .
5.2 Filtro orario
Il filtro TimeFilterti consente di attivare e disattivare i filtri in un determinato momento, ha 5 parametri:
| 1 | inizio | Ora di inizio della registrazione nel formatoHH:mm:ss |
| 2 | FINE | Tempo di disconnessione nel formatoHH:mm:ss |
| 3 | fuso orario | Imposta il fuso orario. |
| 4 | onMatch | Come registrare se la condizione del filtro è vera . Forse ACCEPT, DENYo NEUTRAL. Predefinito NEUTRAL. |
| 5 | onMismatch | Come registrare se la condizione del filtro è falsa . Forse ACCEPT, DENYo NEUTRAL. Predefinito NEUTRAL. |
Impostiamo un filtro che attivi la registrazione alle 5:00 e la disattivi alle 5:30 ogni giorno. Di seguito è riportato un esempio con una configurazione completa del filtro:
<?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
Il filtro RegexFilterconsente di impostare una maschera (espressione regolare) per filtrare i messaggi. Questo filtro ha 4 parametri:
| 1 | espressione regolare | Specifica un'espressione regolare, una maschera utilizzata per filtrare i messaggi.HH:mm:ss |
| 2 | usaRawMsg | La maschera viene applicata nel messaggio prima della formattazione (vero) o dopo la formattazione (falso) |
| 3 | onMatch | Come registrare se la condizione del filtro è vera . Forse ACCEPT, DENYo NEUTRAL. Predefinito NEUTRAL. |
| 4 | onMismatch | Come registrare se la condizione del filtro è falsa . Forse ACCEPT, DENYo NEUTRAL. Predefinito NEUTRAL. |
Impostiamo un filtro che consentirà solo i messaggi contenenti la parola codegym. Di seguito è riportato un esempio con una configurazione completa del filtro:
<?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 soglia
Il filtro ThresholdFilter consente di configurare il filtro per livello di messaggio. Ha solo 3 parametri:
| 1 | livello | Imposta il nome del livello di registrazione dei messaggi: ERROR, DEBUG, … |
| 2 | onMatch | Come registrare se la condizione del filtro è vera . Forse ACCEPT, DENYo NEUTRAL. Predefinito NEUTRAL. |
| 3 | onMismatch | Come registrare se la condizione del filtro è falsa . Forse ACCEPT, DENYo NEUTRAL. Predefinito NEUTRAL. |
Impostiamo un filtro che consentirà solo messaggi di livello DEBUG. Di seguito è riportato un esempio con una configurazione completa del filtro:
<?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>
GO TO FULL VERSION