Bonjour,
c'est sûrement une question bête mais je tourne en rond depuis ce matin ...
J'ai un fichier log4j.properties dans le jar de mon appli :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.Append=False log4j.appender.A1.File=tracePM+.txt log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender log4j.appender.A1.layout.ConversionPattern=[%p] %m\n log4j.appender.A1.DatePattern='.'yyyy-MM-dd log4j.category.com.thales.pmv.ext=DEBUG,A1
L'appli reçoit en paramètre un chemin vers un fichier de config de l'appli. Je récupère, entre autre, le chemin à utiliser pour le fichier de log. Je souhaite donc mettre à jour la configuration du Logger. J'avais commencé par betement modifier et recharger le fichier properties. Helas, il est impossible de modifier le fichier dans le jar. Et de toute manière c'est pas vraiment ce que je veux.
J'ai une classe principale qui initialise le Logger (static) par :
Je lis ensuite mon fichier de conf de l'apli et recupère le chemin à utiliser pour le log. J'appelle donc ma méthode updateLogger sensée mettre à jour la configuration du Logger. Hélas c'est ici le pb ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part log = Logger.getLogger(this.getClass().getName()+".PMCommon");
Est ce que je fais n'importe quoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 private void updateLogger() { // j'ai essayé ça pour voir mais ça ne change rien // PropertyConfigurator.configure("/log4j.properties"); Enumeration enumeration =log.getAllAppenders(); if(enumeration.hasMoreElements()){ // je n'arrive jamais ici !!!! FileAppender monAppender = (FileAppender)enumeration.nextElement(); String fileName = monAppender.getFile(); cheminLog = (cheminLog == null) ? fileName : cheminLog+"\\"+fileName; monAppender.setFile(cheminLog); } }![]()
Je comprends pas, je n'arrive pas à récupérer les Appenders ...
Une idée serait la bienvenue... merci d'avance
[EDIT] En fait je pensais à un autre truc ... est-il possible (enfin j'arrive pas à trouver exactement comment) de définir mon chemin comme une propriété système et d'utiliser cette propriété dans le fichier properties ...
Partager