J'ai une fonction générique qui imprime des exceptions (en utilisant log4j):Comment afficher la trace de pile sur une exception interceptée?
private void _showErrorMessage(Exception e) {
log.error(e.getClass() + ": " + e.getMessage() + ": " + e.getCause() + "\n" + e.getStackTrace().toString());
}
Au lieu de voir la trace de la pile que je vois:
[Ljava.lang.StackTraceElement;@49af7e68
Comment puis-je voir la trace de la pile de l'exception correctement?
mise à jour
log.error (e) < - montre l'erreur, mais ne montre pas trace de la pile
L'appel de 'log.error (e)' dans log4j appelle la mauvaise version de la méthode (http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Category.html#error% 28java.lang.Object% 29). Le JavaDoc pour cette méthode mentionne même ce fait: "AVERTISSEMENT Notez que passer un Throwable à cette méthode affichera le nom de Throwable mais pas de trace de pile Pour imprimer une trace de pile, utilisez plutôt le formulaire error (Object, Throwable)." –
appel log.error (e, e) fera le travail;) – Guillaume