log4j - Journalisation des fichiers
Pour écrire vos informations de journalisation dans un fichier, vous devez utiliser org.apache.log4j.FileAppender.
Configuration de FileAppender
FileAppender a les paramètres configurables suivants:
Propriété | La description |
---|---|
immédiatFlush | Cet indicateur est défini par défaut sur true, ce qui signifie que le flux de sortie vers le fichier est vidé à chaque opération d'ajout. |
codage | Il est possible d'utiliser n'importe quel encodage de caractères. Par défaut, il s'agit du schéma de codage spécifique à la plate-forme. |
seuil | Le niveau de seuil pour cet ajouteur. |
Nom de fichier | Le nom du fichier journal. |
fichierAppend | Cette valeur est définie par défaut sur true, ce qui signifie que les informations de journalisation sont ajoutées à la fin du même fichier. |
bufferedIO | Cet indicateur indique si nous avons besoin d'activer l'écriture en mémoire tampon. Par défaut, il est défini sur false. |
bufferSize | Si les E / S tamponnées sont activées, cela indique la taille de la mémoire tampon. Par défaut, il est défini sur 8 Ko. |
Voici un exemple de fichier de configuration log4j.properties pour FileAppender -
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
# Set the name of the file
log4j.appender.FILE.File=${log}/log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
# Set the append to false, overwrite
log4j.appender.FILE.Append=false
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Si vous souhaitez avoir un fichier de configuration XML équivalent à celui ci-dessus log4j.properties fichier, alors voici le contenu:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
<appender name="FILE" class="org.apache.log4j.FileAppender">
<param name="file" value="${log}/log.out"/>
<param name="immediateFlush" value="true"/>
<param name="threshold" value="debug"/>
<param name="append" value="false"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="conversionPattern" value="%m%n"/>
</layout>
</appender>
<logger name="log4j.rootLogger" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="FILE"/>
</logger>
</log4j:configuration>
Vous pouvez essayer log4j - Exemple de programme avec la configuration ci-dessus.
Connexion à plusieurs fichiers
Vous souhaiterez peut-être écrire vos messages de journal dans plusieurs fichiers pour certaines raisons, par exemple, si la taille du fichier atteint un certain seuil.
Pour écrire vos informations de journalisation dans plusieurs fichiers, vous devez utiliser org.apache.log4j.RollingFileAppender classe qui étend la FileAppender class et hérite de toutes ses propriétés.
Nous avons les paramètres configurables suivants en plus de ceux mentionnés ci-dessus pour FileAppender -
Propriété | La description |
---|---|
maxFileSize | Il s'agit de la taille critique du fichier au-dessus de laquelle le fichier sera roulé. La valeur par défaut est de 10 Mo. |
maxBackupIndex | Cette propriété indique le nombre de fichiers de sauvegarde à créer. La valeur par défaut est 1. |
Voici un exemple de fichier de configuration log4j.properties pour RollingFileAppender.
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
# Set the name of the file
log4j.appender.FILE.File=${log}/log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
# Set the append to false, should not overwrite
log4j.appender.FILE.Append=true
# Set the maximum file size before rollover
log4j.appender.FILE.MaxFileSize=5MB
# Set the the backup index
log4j.appender.FILE.MaxBackupIndex=2
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Si vous souhaitez avoir un fichier de configuration XML, vous pouvez générer le même que celui mentionné dans la section initiale et ajouter uniquement des paramètres supplémentaires liés à RollingFileAppender.
Cet exemple de configuration montre que la taille maximale autorisée de chaque fichier journal est de 5 Mo. En cas de dépassement de la taille maximale, un nouveau fichier journal sera créé. DepuismaxBackupIndex est défini comme 2, une fois que le deuxième fichier journal atteint la taille maximale, le premier fichier journal sera effacé et ensuite, toutes les informations de journalisation seront restaurées dans le premier fichier journal.
Vous pouvez essayer log4j - Exemple de programme avec la configuration ci-dessus.
Génération de fichiers journaux quotidiens
Il peut être nécessaire de générer vos fichiers journaux quotidiennement pour conserver un enregistrement propre de vos informations de journalisation.
Pour écrire quotidiennement vos informations de connexion dans des fichiers, vous devez utiliser org.apache.log4j.DailyRollingFileAppender classe qui étend la FileAppender class et hérite de toutes ses propriétés.
Il n'y a qu'un seul paramètre configurable important en plus de ceux mentionnés ci-dessus pour FileAppender:
Propriété | La description |
---|---|
DatePattern | Cela indique quand survoler le fichier et la convention de dénomination à suivre. Par défaut, le roll over est effectué à minuit chaque jour. |
DatePattern contrôle le planning de substitution à l'aide de l'un des modèles suivants:
DatePattern | La description |
---|---|
'.' aaaa-MM | Reportez-vous à la fin de chaque mois et au début du mois suivant. |
'.' aaaa-MM-jj | Roulez chaque jour à minuit. Ceci est la valeur par défault. |
'.' aaaa-MM-jj-a | Survolez à midi et à minuit de chaque jour. |
'.' aaaa-MM-jj-HH | Retournez au début de chaque heure. |
'.' aaaa-MM-jj-HH-mm | Roulez chaque minute. |
'.' aaaa-ww | Survolez le premier jour de chaque semaine en fonction de la localisation. |
Voici un exemple de fichier de configuration log4j.properties pour générer des fichiers journaux reportés chaque jour à midi et à minuit.
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
# Set the name of the file
log4j.appender.FILE.File=${log}/log.out
# Set the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
# Set the threshold to debug mode
log4j.appender.FILE.Threshold=debug
# Set the append to false, should not overwrite
log4j.appender.FILE.Append=true
# Set the DatePattern
log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
Si vous souhaitez avoir un fichier de configuration XML, vous pouvez générer le même que celui mentionné dans la section initiale et ajouter uniquement des paramètres supplémentaires liés à DailyRollingFileAppender.
Vous pouvez essayer log4j - Exemple de programme avec la configuration ci-dessus.