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_OUT ouSYSTEM_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 à ConsoleAppender
lui, 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 filePattern
spé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
GO TO FULL VERSION