Bonjour,

Dans mon application, j'utilise la classe Logger pour gérer la console (ou éventuellement un fichier log) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public void extrait() {
  // NLogger est une classe qui étend Logger
  this.logger = new NLogger("name", null);
  // NLogFormateur est une classe qui étend Formatter
  Handler handler = new StreamHandler(System.out, new NLogFormateur());
  this.logger.addHandler(handler);
}
Tout marche bien, sauf lorsque dans une exception, je fais "exception.printStackTrace();" : j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
log
lognoyau.exception.NEcritureException: message derreur
	at noyau.ressources.NEcriture.exécuter(NEcriture.java:386)
où un retour à la ligne manque entre le texte loggé "log" et le début du printStackTrace().
J'ai essayé les codes suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
System.setErr(System.out);
this.logger.addHandler(new StreamHandler(System.err, new NLogFormateur()));
mais rien à faire, il ne passe ni dans le formatteur, ni dans les méthodes "standard" du logger (info,fine(r)(st),config,warning et severe). Et comme je n'arrive pas à tracer pas à pas, en debug, les appels du PrintStream "System.err", je n'arrive pas à comprendre comment corriger mon problème.

Quelqu'un aurait-il une idée ?