62 votes

Comment puis-je obtenir que log4j supprime les anciens fichiers journaux en rotation?

Comment puis-je obtenir que log4j supprime les anciens fichiers journaux en rotation? Je sais que je peux configurer des tâches automatisées (cron pour UNIX et tâche planifiée pour Windows), mais je le veux multi-plateforme, et je le veux dans la configuration du journal de notre application en tant que partie de notre application, plutôt que dans un code séparé en dehors du système d'exploitation. langages de script spécifiques. Notre application n'est pas écrite dans les langages de script du système d'exploitation, et je ne souhaite pas en faire partie dans ces langages.

58voto

Jared Oberhaus Points 8877

RollingFileAppender fait cela. Il vous suffit de définir maxBackupIndex sur la valeur la plus élevée du fichier de sauvegarde.

45voto

rcarson Points 182

Les journaux de rotation pour une raison, de sorte que vous ne gardez donc de nombreux fichiers journaux autour de. Dans log4j.xml vous pouvez ajouter ceci à votre nœud:

<param name="MaxBackupIndex" value="20"/>

La valeur indique la log4j.xml de ne garder que 20 rotation des fichiers journaux autour de. Vous pouvez le limiter à 5 si vous voulez ou même 1. Si votre application n'est pas en enregistrement de la quantité de données, et vous avez 20 fichiers journaux couvrant les 8 derniers mois, mais vous avez seulement besoin d'une valeur de semaines de journaux, alors je pense que vous avez besoin d'ajuster votre log4j.xml "MaxBackupIndex" et "MaxFileSize" params.

Alternativement, si vous utilisez un fichier de propriétés (au lieu du xml) et que vous souhaitez économiser 15 fichiers (par exemple)

log4j.appender.[appenderName].MaxBackupIndex = 15

9voto

user3195649 Points 10

Il n'y a pas de valeur par défaut pour le contrôler, mais vous pouvez écrire votre propre Appender personnalisé. Vous pouvez utiliser ce lien pour des instructions simples ici

4voto

Don G. Points 39

Pas de travail ici, j'ai plusieurs propriétés log4j fichiers pour les différents simultanée de bûcherons, comme ceci:

log4j.appender.Fichier de LOG.Seuil=INFO log4j.appender.LOGFILE=org.apache.log4j.RollingFileAppender log4j.appender.Fichier de LOG.layout=org.apache.log4j.PatternLayout log4j.appender.Fichier de LOG.de mise en page.ConversionPattern=%d{jj-MM-aaaa} %d{HH:mm:ss} %p %m%n log4j.appender.Fichier de LOG.MaxFileSize=50000KB log4j.appender.Fichier de LOG.MaxBackupIndex=2

Il sert à faire pivoter la création de l'2 autres sauvegardes, aujourd'hui, seul le fichier journal est créé et tourne, mais pas de sauvegardes, aucune idée de pourquoi...

EDIT: j'ai trouvé le problème, c'était un problème d'autorisations. Le répertoire où les fichiers journaux sont créés a la racine de propriétaire, le Tomcat fonctionner sous d'autres restreint d'utilisateurs et les journaux ont été créés par cet utilisateur. Ajouté 777 sur le répertoire et le tour est joué.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X