Hello !
J'utilise la classe Logger pour générer du log. Seulement je voulais que le log s'écrive en console uniquement.
Au lancement du programme j'ai indiqué de ne pas utiliser le flux de sortie du parent :
Ensuite j'ai créé un handler, que j'ai associé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part setUseParentHandlers(false);
A partir d'ici tout est bon, tout le log s'écrit dans mon fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 mrh = new ModuleReaderHandler(prop.getProperty("output")); Logger.getLogger(ModuleReaderImpl.class.getName()).addHandler(mrh);
Mon programme réalise un traitement qui dure environ 2 min, et au bout de 10 secondes (le temps est variable) le log se redirige en console.
Le paramètre useParentHandler revient à true, et le handler n'est plus lié.
En faite après avoir bien cherché, j'ai remarqué que c'est que le Garbage collector vire la référence de mon Logger, et la fois d'après où je veux écrire un nouveau log, et bien un nouveau Logger est créé, avec les propriété par défaut.
N'y a t'il pas moyen de gérer ce problème de garbage collector ? ou alors dire, au gc de ne pas nettoyer telle ou telle classe ?
Merci
Partager