CodeGym/Cours Java/Module 3/Filtres de journaux dans Log4j

Filtres de journaux dans Log4j

Disponible

5.1 Liste des filtres

L'enregistreur vous permet de configurer très simplement le filtrage des messages. Pour ce faire, il dispose d'une vingtaine de filtres avec toutes sortes de paramètres. Le tableau ci-dessous montre les plus populaires.

Filtres Description
1 BurstFilter Permet de contrôler la fréquence des messages par seconde pour un niveau de journalisation donné.
2 Filtre composite Vous permet de définir plusieurs filtres séquentiels.
3 DynamicThresholdFilter Vous permet d'activer la journalisation détaillée si certaines informations sont trouvées dans le journal.
4 FiltreCarte Permet de construire une expression logique complexe pour le filtre à partir de plusieurs paramètres.
5 MarqueurFiltre Permet de filtrer les messages par balises, la balise doit d'abord être ajoutée lors de la journalisation des événements.
6 RegexFiltre Vous permet de définir un masque - une expression régulière.
7 Filtre de données structurées Vous permet de filtrer les messages en fonction de la présence de certaines données en eux.
8 ThreadContextMapFilterThreadContextMapFilter Permet de gérer des filtres basés sur des données extraites du contexte du fil en cours.
9 Filtre de seuil Contrôle la journalisation en fonction du niveau de message de journal.
dix Filtre de temps Vous permet d'activer et de désactiver les filtres à des moments précis.

Ci-dessous, nous ne parlerons que de trois d'entre eux. Vous pouvez en savoir plus sur ces filtres sur leur site officiel .

5.2 Filtre de temps

Le filtre TimeFiltervous permet d'activer et de désactiver les filtres à un certain moment, il dispose de 5 paramètres :

1 commencer Heure de début de journalisation au formatHH:mm:ss
2 fin Heure de déconnexion au formatHH:mm:ss
3 fuseau horaire Définit le fuseau horaire.
4 surMatch Comment se connecter si la condition du filtre est vraie . Peut-être ACCEPT, DENYou NEUTRAL. Par défaut NEUTRAL.
5 onMismatch Comment se connecter si la condition du filtre est fausse . Peut-être ACCEPT, DENYou NEUTRAL. Par défaut NEUTRAL.

Configurons un filtre qui activera la journalisation à 5h du matin et l'éteindra à 5h30 tous les jours. Un exemple avec une configuration de filtre complète est ci-dessous :

<?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 RegexFiltre

Le filtre RegexFiltervous permet de définir un masque (expression régulière) pour filtrer les messages. Ce filtre a 4 paramètres :

1 expression régulière Spécifie une expression régulière - un masque utilisé pour filtrer les messages.HH:mm:ss
2 utiliserRawMsg Le masque est appliqué dans le message avant formatage (true) ou après formatage (false)
3 surMatch Comment se connecter si la condition du filtre est vraie . Peut-être ACCEPT, DENYou NEUTRAL. Par défaut NEUTRAL.
4 onMismatch Comment se connecter si la condition du filtre est fausse . Peut-être ACCEPT, DENYou NEUTRAL. Par défaut NEUTRAL.

Configurons un filtre qui n'autorisera que les messages contenant le mot codegym. Un exemple avec une configuration de filtre complète est ci-dessous :

<?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 Filtre de seuil

Le filtre ThresholdFilter vous permet de configurer le filtrage par niveau de message. Il n'a que 3 paramètres :

1 niveau Définit le nom du niveau de journalisation des messages : ERROR, DEBUG, …
2 surMatch Comment se connecter si la condition du filtre est vraie . Peut-être ACCEPT, DENYou NEUTRAL. Par défaut NEUTRAL.
3 onMismatch Comment se connecter si la condition du filtre est fausse . Peut-être ACCEPT, DENYou NEUTRAL. Par défaut NEUTRAL.

Configurons un filtre qui n'autorisera que les messages de niveau DEBUG. Un exemple avec une configuration de filtre complète est ci-dessous :

<?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>
Commentaires
  • Populaires
  • Nouveau
  • Anciennes
Tu dois être connecté(e) pour laisser un commentaire
Cette page ne comporte pas encore de commentaires