Comment écrire une trace de pile complète dans le journal?
J'ai été l'interception d'une exception et d'essayer d'écrire la trace de la pile pour les journaux comme ceci:
log.warn(e.getMessage());
Mais tout ce qu'il a dit était
null
Donc je l'ai changé pour
log.warn(e.toString());
Et maintenant, il dit seulement
java.lang.NullPointerException
Comment puis-je écrire le plein de trace de pile dans le journal pour que je puisse voir où cette Exception est générée par l'application?
source d'informationauteur Linc
Vous devez vous connecter pour publier un commentaire.
Généralement:
Mais cela dépend de votre journalisation trop.
Vous pouvez utiliser
ou
Ressources :
Catégorie
À l'exception de la méthode, le sous-jacent
String
qui contient le message estnull
.La réponse ci-dessus, maintenant, frappé, est toujours valable, sauf que
e
n'est pas nulle, mais ledetailMessage
privé variable d'instance sur leThrowable
classe est nulle, ce qui est pourquoie.getMessage()
est la Chaînenull
maise.toString()
(qui appelle sous-jacent nulldetailMessage.toString
) jette unNullPointerException
.Utilisation de log4j c'est fait avec:
enregistreur.erreur("Une erreur s'est produite", l'exception);
Le premier argument est d'afficher un message, le second est l'exception (throwable) dont la stacktrace est connecté.
Une autre option est de commons-logging, où c'est la même chose:
journal.erreur("Message", une exception);
Avec java.util.la journalisation cela peut se faire via:
enregistreur.log(Level.GRAVE, "Message", une exception);
Peut-être vous cherchez quelque chose comme ceci:
http://www.javapractices.com/topic/TopicAction.do?Id=78
Si vous utilisez java8 vous pouvez effectuer les opérations suivantes:
Si vous utilisez une version de Java précédente à 8, vous pouvez essayer ceci: