Bonjour,
J'ai un souci avec log4j:
J'ai une classe principale avec un logger:
Code :
- private static Logger logger = Logger.getRootLogger();
|
Comme le nom du log a créer est dynamique, je ne peux que configurer le logger dans le code (au lieu du fichier properties):
Code :
- // Get the jobID
- myJobID = args[0];
- // Initialize the logger
- FileAppender myFileAppender;
- try
- {
- myFileAppender = new FileAppender(new SimpleLayout(), myJobID + ".log", false);
- BasicConfigurator.configure(myFileAppender);
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
|
Ma classe principale appelle ensuite une ou plusieurs classes indépendantes (grace a une CommandFactory). Chacune de ces classes a son propre logger, définit comme suit:
Code :
- private Logger logger = Logger.getLogger(maDeuxiemeClasse.class);
|
Maintenant, quand je lance mon programme, la classe principale ET la classe secondaire loggent des trucs, tout fonctionne très bien.
Les problèmes commencent quand je lance mon programme 2 fois en meme temps:
La deuxieme instance du programme va continuer a logger dans le log de la premiere instance (et en meme temps dans son propre log)
Donc si le programme a comme sortie:
Si je le lance 2 fois avec quelques secondes de decalage, j'aurais:
Log2:
Log1:
Citation :
1 2 3 1 2 3 4 5 pouf 4 5 pouf
|
J'ai un probleme d'instances de logger je pense - qqun a une idee ?
Message édité par ParadoX le 01-12-2011 à 22:48:26
---------------
Pier noir la mèr - La chanson par HFR Band - Topic TrueCrypt