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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
log = Logger.getLogger(this.getClass().getName()+".PMCommon");
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
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);
		}
}
Est ce que je fais n'importe quoi ?

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 ...