[Logger/Handler/System.err] Throwable.printStackTrace()
Bonjour,
Dans mon application, j'utilise la classe Logger pour gérer la console (ou éventuellement un fichier log) :
Code:
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:
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:
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 ?