Comment puis-je faire en sorte 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 de notre application dans notre application, plutôt que dans un code séparé en OS langages de script spécifiques. Notre application n'est pas écrite dans les langages de script OS, et je ne veux pas faire cette partie en eux.Comment puis-je faire en sorte que log4j supprime les anciens fichiers journaux en rotation?
Répondre
RollingFileAppender fait cela. Vous avez juste besoin de définir maxBackupIndex à la valeur la plus élevée pour le fichier de sauvegarde.
Les journaux tournent pour une raison, de sorte que vous ne conserviez que de nombreux fichiers journaux. En log4j.xml vous pouvez ajouter à votre noeud:
<param name="MaxBackupIndex" value="20"/>
La valeur indique log4j.xml de ne conserver que 20 fichiers journaux mis en rotation autour. Vous pouvez limiter à 5 si vous voulez ou même 1. Si votre application n'enregistre pas autant de données, et que vous avez 20 fichiers journaux couvrant les 8 derniers mois, mais que vous n'avez besoin que d'une semaine de logs, alors je pense que vous besoin de modifier vos paramètres log4j.xml "MaxBackupIndex" et "MaxFileSize".
Sinon, si vous utilisez un fichier de propriétés (au lieu du xml) et souhaitez enregistrer 15 fichiers (par exemple)
log4j.appender.[appenderName].MaxBackupIndex = 15
Est-ce que cela fonctionne avec DailyRollingFileAppender? – rogerdpack
Il n'existe aucune valeur par défaut pour contrôler la suppression des anciens fichiers journaux créés par DailyRollingFileAppender. Mais vous pouvez écrire votre propre Appender personnalisé qui supprime les anciens fichiers journaux de la même manière que la configuration de maxBackupIndex pour RollingFileAppender.
instructions simples trouvées here
De 1:
Si vous essayez d'utiliser Apache Log4J DailyRollingFileAppender pour un fichier journal quotidien, vous devrez peut vouloir spécifier le nombre maximum de fichiers qui doivent être gardé. Tout comme RollingFileAppender prend en charge maxBackupIndex. Mais la version actuelle de Log4j (Apache log4j 1.2.16) ne fournit aucun mécanisme pour supprimer les anciens fichiers journaux si vous utilisez DailyRollingFileAppender. J'ai essayé de faire de petites modifications dans la version originale de DailyRollingFileAppender pour ajouter la propriété maxBackupIndex. Ainsi, il serait possible de nettoyer les anciens fichiers journaux qui peuvent ne pas être nécessaires pour une utilisation future.
- 1. Comment faire en sorte que log4net génère des fichiers journaux lorsqu'il est exécuté en tant qu'utilisateur non-administrateur?
- 2. Comment faire en sorte que PHPMyAdmin affiche les avertissements MySQL?
- 3. Comment faire en sorte que l'URL envoie un formulaire d'action?
- 4. Comment puis-je faire en sorte que Sandcastle joue bien avec SVN?
- 5. Comment puis-je faire en sorte que DataContractJsonSerializer sérialise un objet en tant que chaîne?
- 6. Puis-je faire en sorte que vim respecte mes fichiers .gitignore?
- 7. Faire en sorte que http apparaît dans une adresse Web
- 8. KML et supprimer les anciens fichiers KML
- 9. Comment faire en sorte que FlexBuilder reconnaisse mes fichiers MXML en tant qu'applications au lieu de composants?
- 10. Comment faire pour que log4j efface un journal au démarrage?
- 11. Comment conserver les journaux en C#?
- 12. Comment puis-je faire en sorte que WCF ferme automatiquement les connexions?
- 13. Comment faire en sorte que les hôtes Teredo d'un sous-réseau communiquent entre eux
- 14. Traction et rotation de journaux dans Windows
- 15. Les fichiers journaux WSS sont de plus en plus incontrôlables
- 16. Comment faire en sorte que la fenêtre du navigateur suive en douceur un élément animé?
- 17. Comment tronquer et réduire les fichiers journaux?
- 18. Travailler les journaux en production
- 19. Supprimer les anciens fichiers de sauvegarde
- 20. Faire en sorte que MySQL affiche toutes les évaluations des utilisateurs, puis trier les résultats en utilisant les évaluations?
- 21. Comment convertir un horodatage log4j en millisecondes en Perl?
- 22. Pourquoi les horodatages des fichiers journaux Log4j sont-ils hors service et comment puis-je les corriger?
- 23. TeamCity supprime les fichiers sur la construction
- 24. Existe-t-il un moyen de faire en sorte que les classes dérivées remplacent ToString()?
- 25. Comment puis-je configurer logrotate pour ne pas supprimer mes fichiers journaux après la rotation?
- 26. Comment puis-je vraiment faire en sorte que Subversion ignore un répertoire?
- 27. Rotation 3D en OpenGL et rotation locale
- 28. Convertir les journaux Yahoo Messenger en journaux Adium
- 29. Visionneuse de journaux distants pour les fichiers journaux Java/Glassfish
- 30. Réécriture d'Helicon Isapi - impossible de faire en sorte que les URL soient insensibles à la casse
Est-il possible de faire cela avec DailyRollingFileAppender? –
Non, pas avec le standard - voir la réponse de l'utilisateur3195649 ci-dessous. Croyez que les Extras d'Apache pour log4j ont quelque chose de similaire. –
Cela supprimera-t-il également les anciens fichiers journaux qui ont été archivés auparavant (* .log.2016-09-12) par DailyRollingFileAppender? – mvdb