Paramètre un nom de fichier journal pour inclure la date actuelle dans Log4j
Je voudrais configurer le nom du fichier journal pour une log4j et log4net appender d'avoir la date en cours. Nous faisons Quotidiennement les rollovers, mais le fichier journal actuel ne dispose pas d'une date. Le journal de format de nom de fichier serait
logname.2008-10-10.log
Ce que quelqu'un sait la meilleure façon pour moi de faire cela?
edit: j'ai oublié de mentionner que nous voulons faire cela dans log4net ainsi. En Plus de toute solution devra être utilisable dans JBoss.
Vous devez vous connecter pour publier un commentaire.
DailyRollingFileAppender est exactement ce que vous recherchez.
log4j.appender.roll.datePattern='.'yyyy-MM-dd'.txt'
et oui il en résulte un nom de fichier comme application.journal.2016-01-25.journalUtilisation de log4j.fichier de propriétés, et notamment "apache log4j-extras 1.1 dans mon POMPON avec log4j 1.2.16
log4j.appender.out.RollingPolicy.FileNamePattern=logs/%d{yyyy-MM-dd HH-mm-ss} cron-script-x/out.log log4j.appender.err.RollingPolicy.FileNamePattern=logs/%d{yyyy-MM-dd HH-mm-ss} cron-script-x/err.log
Je suis sûr à 99% que RollingFileAppender/DailyRollingFileAppender, alors qu'il vous donne la date de roulement sur les fonctionnalités que vous souhaitez, n'a aucun moyen de spécifier que le fichier journal actuel devrait utiliser le
DatePattern
ainsi.Vous pourriez être en mesure de simplement sous-classe RollingFileAppender (ou DailyRollingFileAppender, j'ai oublier qui est qui dans log4net) et de modifier la dénomination de la logique.
J'ai créé un appender qui le fera. http://stauffer.james.googlepages.com/DateFormatFileAppender.java
Je ne sais pas si c'est possible en Java, mais en .NET de la propriété StaticLogFileName sur RollingFileAppender vous donne ce que vous voulez. La valeur par défaut est true.
Plein config:
".log"
est de ne pas laisser le dateformat reconnaître le global modèle de date " g " dans le journal."
dansyyyy-MM-dd".log"
destiné à être là, au lieu de'
?cet exemple sera la création d'enregistreur pour chaque minute, si vous voulez changer pour chaque jour changer la
DatePattern
valeur.Comme une réponse pour les deux réponses qui mentionnent DailyRollingFileAppender (désolé, je n'ai pas assez de rep pour les commenter directement, et je pense que cela doit être mentionné), je tiens à avertir que, malheureusement, les développeurs de cette classe ont documenté le fait qu'il présente la synchronisation et la perte de données, et de recommander des solutions de rechange devrait être poursuivi pour les nouveaux déploiements.
DailyRollingFileAppender JavaDoc
Vous pouvez définir FileAppender dynamiquement
"logname"+new Date().format("yyyy-mm-dd-hh-MM")+".log"
Même si u utilisation DailyRollingFileAppender comme @gedevan suggéré, u sera toujours obtenir
logname.log.2008-10-10
(Après un jour, parce que le jour précédent journal archivé et la date seront concaténés à son nom de fichier).Donc, si tu veux .journal à la fin, u faudra le faire comme ceci sur le DatePattern:
log4j.appender.file.DatePattern='.'yyyy-MM-dd-HH-mm'.log'