Wie logge ich mich ein stacktrace in der java-Logger-Klasse
Ich bin mit Java Logger
Klasse. Möchte ich weitergeben ex.printStackTrace()
in Logger.log(loglevel, String)
, aber printStackTrace()
zurück void
. Also ich bin nicht in der Lage zu gehen, und drucken Sie die stack-trace der exception.
Gibt es irgendeine Möglichkeit, dass ich konvertieren void
in String
oder gibt es irgendwelche anderen Methoden, um das drucken der ganze stack-trace von Ausnahmen?
kurz : NEIN, kann u nicht.
Sicher, verwenden Sie diese: commons.apache.org/proper/commons-lang/javadocs/api-3.4/org/... von commons-lang3 3.4
Was für eine Art von string-Wert von "nichts" verwandelt werden?
Sicher, verwenden Sie diese: commons.apache.org/proper/commons-lang/javadocs/api-3.4/org/... von commons-lang3 3.4
Was für eine Art von string-Wert von "nichts" verwandelt werden?
InformationsquelleAutor Surya Joseph | 2015-07-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie verstehen, dass
void
ist eigentlichnothingness
. Sie können nicht konvertieren, was nichts ist. Sie könnten am Ende druckenvoid
als ein string, aber (glauben Sie mir), Sie nicht wollen, dass.Ich denke was du suchst ist
Damit erhalten Sie einen Ausdruck der Fehlermeldung mit dem logger, den Sie konfiguriert haben. Für weitere details, können Sie einen Blick auf die java-docs für Ausnahme#getMessage()
logger.error()
ist nichtjava.util.logging
, aber ich werde nicht auf die downvote Sie, da bin ich froh zu entdeckenlogger.log(Level, Exception, Supplier)
. Sieht aus wie Oracle habenjava.util.logging.Logger
ernsthaft hässlich! Da waren Sie das tun, es ist seltsam, dass Sie nicht nehmen Sie es weiter und erstellenlogger.severe(String, Exception)
etcDie Frage fragt nach einer Lösung, die mit Java - Logger-Klasse. java.util.die Protokollierung.Logger nicht über eine Methode namens "error". Ich habe downvoted diese Antwort nur, weil die.
InformationsquelleAutor Saif Asif
Verwenden
java.util.logging.Logger#log(Level, String, Throwable)
und pass inex
als drittes argument wie dieses:Ich bin nicht immer stack-trace protokollieren, die mit dieser, nur das zweite argument.
Es ist möglich zu unterdrücken und den stack-trace durch änderung der log-format. Die formatter benutzt du und wie sieht dein log-format Aussehen?
InformationsquelleAutor hzpz
Kann man nicht konvertieren
void
inString
; keine derartige Umwandlung existiert.void
nicht zurück alles zurück, so haben Sie keinen Wert abrufen.Was Sie wahrscheinlich tun möchten ist, bekommen Sie die Meldung, die die Ausnahme anstatt über
ex.getMessage()
.InformationsquelleAutor Makoto
Auch eine andere alternative wäre:
InformationsquelleAutor Rutuja
Können Sie die getStackTrace() Methode, um ein array von StackTraceElements und generiert eine Zeichenfolge von dort. Andernfalls, wenn nur die Letzte Fehlermeldung ist ausreichend, verwenden Sie die
getMessage()
Methode wie vorgeschlagen von Makoto.Um den stack-trace als
String
aus einem array vonStackTraceElement
Objekte, die Sie benötigen, um die Iteration über das array (entnommen aus JDK7 Quelle):Andere Möglichkeit ist die Verwendung
printStackTrace(PrintStream s)
werden, wo Sie angeben, wo Sie möchten, dass der stacktrace gedruckt werden:InformationsquelleAutor Chthonic Project
Als Makoto sagt, Sie wahrscheinlich wollen zu tun, ein ex.getMessage().
Weiter zu klären,
void
bedeutet, dass nichts zurückgegeben. Sie kann nicht wirken, nichts in etwas 🙂InformationsquelleAutor kotakotakota
KÖNNEN Sie konvertieren stacktrace in String unten. Wenn
e
ist die exception-ObjektInformationsquelleAutor Amit.rk3
Danke an Euch alle. Ich bin in der Lage, melden Sie die stack-trace-details mit
InformationsquelleAutor Surya Joseph
Gibt es eine überladene printStackTrace-Methode in einen PrintWriter.
Können Sie so etwas tun
InformationsquelleAutor sleeloy
Unter format können Sie den stack-trace:
Den Punkt in diesem Muster ist %6$s. Es wird gedruckt, der stack-trace.
InformationsquelleAutor iman