Liste des annexes

L'enregistreur vous permet d'enregistrer des données dans plusieurs fichiers à la fois. Ces flux de données de sortie sont appelés appenders (de append). Il existe de nombreux appenders standard, nous ne couvrirons donc que les plus populaires :

Appendices Description
1 Console Imprime les données sur la console
2 Déposer Sortie des données dans un fichier
3 DailyRollingFile Envoie des données dans un fichier, le fichier est écrasé de manière cyclique
4 Asynchrone Vous permet d'écrire des données sur un autre appender de manière asynchrone
5 Prise Écrit des données dans un socket spécifique
6 JDBCName Écrit des messages dans la base de données à l'aide du protocole JDBC
7 APP Écrit des messages dans la base de données à l'aide du protocole JPA
8 HTTP Envoie des événements via le protocole HTTP à un serveur distant
9 SMTP Stocke les messages dans une mémoire tampon, puis les envoie sous forme d'e-mail

Une bonne documentation pour tous les appenders se trouve sur leur site officiel

Et ci-dessous, nous examinerons les plus populaires et les plus simples d'entre eux.

ConsoleAppender

L'appendice le plus simple estConsoleApender . Comme vous l'avez peut-être deviné, il écrit simplement ses messages sur la console. Il a plusieurs paramètres intéressants pour nous :

Les attributs
1 nom Nom de l'annexe
2 filtre Permet de filtrer certains messages
3 mise en page Spécifie le formatage des messages lors de la sortie
4 cible Spécifie où écrire : SYTEM_OUTouSYSTEM_ERR

Il est très simple de le configurer :


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

FichierAppender

L'appender le plus utile estFileAppender . Contrairement à ConsoleAppenderlui, il écrit ses messages dans un fichier. Ce qui est très utile lorsque votre application s'exécute quelque part sur le serveur. Il a beaucoup de paramètres, car il doit être capable d'écrire des fichiers sur différents systèmes d'exploitation.

Mais nous ne considérerons que les plus populaires d'entre eux.

1 nom Spécifie le nom de l'appender
2 filtre Permet de filtrer certains messages
3 mise en page Spécifie le formatage des messages lors de la sortie
4 nom de fichier Spécifie le nom du fichier où écrire les messages
5 ajouter Si true, alors les messages seront ajoutés à l'ancien journal, si false- le fichier journal sera recréé à chaque démarrage de l'application.
6 bufferSize Définit la taille du tampon en octets
7 affleurement immédiat Si true, alors chaque message est en fait écrit immédiatement sur le disque (sans tampon). Le journal commence à fonctionner lentement, mais cela vous évite de perdre des données lorsque le programme plante.

Vous savez déjà bien travailler avec les fichiers, ces paramètres ne sont donc pas nouveaux pour vous. Configurer un tel enregistreur est encore plus simple qu'un enregistreur de console :


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

L'appender le plus populaire estRollingFileAppender . Contrairement FileAppenderà lui, il vous permet de diviser le journal en plusieurs petits fichiers. Ceci est très important pour les grosses bûches. De plus, il vous permet de définir des règles sur ce qu'il faut faire avec les anciens fichiers une fois que les nouveaux ont commencé à être écrits.

Et cet appender a près d'une centaine de paramètres différents. Vous pouvez en savoir plus à leur sujet sur le lien .

Considérez les attributs les plus populaires de cet appender :

Les attributs
1 nom Spécifie le nom de l'appender
2 filtre Permet de filtrer certains messages
3 mise en page Spécifie le formatage des messages lors de la sortie
4 nom de fichier Spécifie le nom du fichier où écrire les messages
5 filePattern Spécifie un modèle de nommage pour les fichiers d'archive qui ne sont plus écrits
6 politique Spécifie la condition à laquelle le fichier doit commencer à être écrasé
7 stratégie Décrit ce qu'il faut faire des anciens fichiers : archive, historique du nombre de jours à conserver, etc.

Voici un bon exemple:


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

Le paramètre filePatternspécifie un modèle pour les archives des anciens journaux. Il y en a aussi deux, lorsqu'il est déclenché, un nouveau fichier sera écrit :

  • TimeBasedTriggeringPolicy– fonctionnera si un nouveau jour commence (la date actuelle change)
  • SizeBasedTriggeringPolicy– fonctionnera si la taille du fichier atteint 250 Mo