[Log4J] DailyRollingFileAppender
voila je m'occupe de faire une application web et afin de tracer certains évènements je pense utiliser log4j et comme appender le DailyRollingFileAppender. mon fichier de log "titi.log" doit etre renommé en "titixxxyy.log" où xxx = le nombre de jour dans l'année.
je ne sais pas comment faire.
pouver vous m'aider?
[Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java
Question pour les experts log4j
En fait, j'ai cela dans mon code source
private ByteArrayOutputStream loggerBAOS = new ByteArrayOutputStream();
Logger logger = Logger.getLogger(name);
DailyRollingFileAppender A1 = new DailyRollingFileAppender();
A1.setLayout(new SimpleLayout());
A1.setFile("test_log4j.log");
A1.setDatePattern("' '.'yyyy-MM-dd-HH-mm ");
WriterAppender WA = new WriterAppender ( new SimpleLayout(),loggerBAOS );
//
logger.addAppender(WA);
logger.addAppender (A1);
tout maeche niquel, sauf pour le DailyRollingFileAppender a chaque jour il m'ecrase les informations et il fait pas de backup des logs.
j'ai tout essaye, meme rien, alors des suggestions SVP!!!
merci
Citation:
Envoyé par Jaxofun
Tu ne sais pas comment obtenir le nombre de jours dans l'année ou tu ne sais pas comment modifier ton logger pour qu'il change de fichier ?
Je subodore que ton problème doit être le second. Dans ce cas il faut :
1- Recupérer le logger avec la classe Logger.
Code:
Logger monLogger=Logger.getLogger("MonNomDeLogger");
2- Recupérer l'appender associé correspondant au fichier actuel
Code:
1 2 3 4
| Enumeration enum =monLogger.getAllAppenders();
if(enum.hasMoreElements() && file==null){
FileAppender monAppender = (FileAppender)enum.nextElement();
... |
3- Modifier le nom du fichier de la sortie de mon logger:
Code:
1 2
| ...
monAppender.setFile("LeNouveauNomDeFichierDeMonAppender"); |
Attention : c'est dans le cas ou ton logger n'a qu'un seul appender. S'il en a plusieur il faut adapter la partie (2) .