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

StackOverflow https://stackoverflow.com/questions/1050256

  •  20-08-2019
  •  | 
  •  

Question

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 veux pas en faire cette partie.

Était-ce utile?

La solution

RollingFileAppender fait cela. Vous devez simplement définir maxBackupIndex sur la valeur la plus élevée du fichier de sauvegarde.

Autres conseils

Les journaux tournent pour une raison donnée, de sorte que vous ne gardiez qu'un nombre limité de fichiers journaux. Dans log4j.xml, vous pouvez ajouter ceci à votre noeud:

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

La valeur indique à log4j.xml de ne conserver que 20 fichiers journaux pivotés. Vous pouvez limiter ce nombre à 5 si vous le souhaitez ou même à 1. Si votre application n'enregistre pas beaucoup de données et que vous avez 20 fichiers journaux couvrant les 8 derniers mois, mais que vous n’avez besoin que de plusieurs semaines de journaux, devez ajuster votre log4j.xml " MaxBackupIndex " et " MaxFileSize " params.

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

log4j.appender.[appenderName].MaxBackupIndex = 15

Il n'y a pas de 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 définition de maxBackupIndex pour RollingFileAppender.

Des instructions simples ont été trouvées ici

.

De 1 :

Si vous essayez d'utiliser Apache Log4J DailyRollingFileAppender pour un fichier journal quotidien, vous devrez peut-être spécifier le nombre maximal de fichiers à conserver. Tout comme rouler, RollingFileAppender supporte 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 pourraient ne pas être nécessaires pour une utilisation future.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top