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.
Réponses
Trop de publicités?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
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
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é.