CodeGym /Corsi /All lectures for IT purposes /Filtri di registro in Log4j

Filtri di registro in Log4j

All lectures for IT purposes
Livello 1 , Lezione 332
Disponibile

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>
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION