samedi 17 janvier 2015

Java / Log4J : Console & fichier LOG

LOG4J n'est plus à présenter : API puissante et indispensable pour tout développeur Java qui souhaite tracer certaines informations.

Nous allons nous attarder sur la façon "d'orienter" les traces vers la console et vers un fichier LOG.

Exemple d'un fichier log4j.properties.

Pour rappel ce fichier est le principal fichier pour le paramétrage de LOG4J.

log4j.rootLogger= , A1, A2

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.Threshold=INFO

log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n

log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.Threshold=INFO
log4j.appender.A2.File= ${user.home}/mon_fichier.log

log4j.appender.A2.MaxFileSize=5000KB
log4j.appender.A2.MaxBackupIndex=1

log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d %-5p [%t] %-17c{2} %3x - %m%n

Dans cet exemple nous utilisons 2 "loggers" (autrement dit 2 "canaux" pour tracer les informations).

Le premier logger (A1) est la console.

Toutes les informations de type "INFO" seront tracées dans la console avec un format particulier (ConversionPattern).

Le deuxième logger (A2) : il va permettre de tracer les informations de type "INFO" dans un fichier LOG (mon_fichier.log).

A noter l'utilisation de ${user.home} qui spécifie le répertoire "HOME" de l'utilisateur.

Ce fichier est de type "RollingFile" : lorsque sa taille sera de 5000 KB (MaxFileSize) il sera automatiquement "vidé".

Le gros avantage de cette méthode est de pouvoir contrôler la taille des fichiers LOG.

L'inconvénient est de bien définir la taille du fichier selon nos besoins.

LOG4J permet aussi d'archiver ce type de fichier lorsqu'il a atteint la taille maximale. La propriété <MaxBackupIndex> définie le nombre de fichiers "archives" souhaité.

Les informations tracées dans le fichier sont formatées (ConversionPattern).

Aucun commentaire:

Enregistrer un commentaire