Stacktrace formatieren und lesbar machen

Stacktrace formatieren für Java, Python, JavaScript und .NET: Zeilenumbrüche wiederherstellen, eigenen Code hervorheben, Framework-Frames einklappen.

Anzeige

Aufbereiteter Stacktrace
Als Text (aufgeräumt)

Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.

Stacktraces schneller verstehen

Ein Stacktrace zeigt, über welche Funktionsaufrufe ein Programm an die Stelle eines Fehlers gelangt ist. In Logs ist er oft schwer zu lesen: einzeilig mit \n statt Zeilenumbrüchen, voller Framework-Aufrufe und mit mehreren verketteten Ausnahmen. Das Werkzeug kann jeden Stacktrace formatieren: Es ersetzt maskierte Umbrüche, erkennt Ausnahmen und Frames, hebt Zeilen aus Ihrem eigenen Code hervor und klappt Bibliotheken auf Wunsch zusammen.

So hilft es beim Stack Trace lesen: Bei einem Java-Stacktrace stehen die Frames als at paket.Klasse.methode(Datei.java:42), verkettete Ursachen beginnen mit Caused by:. Ein Python-Traceback läuft umgekehrt, der Aufruf, in dem der Fehler entstand, steht unten direkt über der Fehlermeldung. Ein JavaScript-Fehler aus Chrome oder Node.js enthält Zeilen wie at funktion (datei.js:10:5), Firefox und Safari schreiben funktion@datei.js:10:5. Eine .NET-Exception zeigt at Namespace.Klasse.Methode() in Pfad:line 42 und innere Ausnahmen mit --->.

Tragen Sie unter „Eigener Code“ die Anfänge Ihrer Pakete, Namespaces oder Pfade ein, etwa com.example, MyApp. oder src/. Diese Frames werden markiert; alles andere gilt als Bibliothek. Die Erkennung arbeitet mit regulären Ausdrücken für die gängigen Formate; ungewöhnliche Ausgaben, etwa von Go oder Rust, erscheinen unverändert als Text. Logdateien durchsuchen Sie vorher am besten mit dem Log-Filter.

Anleitung: Stacktrace formatieren in 4 Schritten

  1. Den Stacktrace in das Feld „Stacktrace“ einfügen, auch einzeilig aus einem JSON-Log mit \n.
  2. Bei „Sprache“ automatische Erkennung lassen oder Java, Python, JavaScript bzw. .NET wählen.
  3. Unter „Eigener Code“ Paket- oder Pfadanfänge wie com.example oder src/ eintragen.
  4. Mit „Fremde Frames einklappen“ Bibliotheken ausblenden und das aufgeräumte Ergebnis mit „Kopieren“ übernehmen.

Typische Anwendungsfälle

  • Einen Fehler aus einem Log-Aggregator, in dem der Stacktrace als eine Zeile mit \n steht, wieder lesbar machen.
  • In langen Spring- oder Django-Traces sofort die Zeile im eigenen Code finden, die den Fehler ausgelöst hat.
  • Für ein Ticket eine gekürzte Fassung ohne Framework-Frames erstellen.
  • Verkettete Ausnahmen mit Caused by oder InnerException getrennt betrachten.
Fragen

Häufige Fragen

Was macht das Werkzeug mit einzeiligen Stacktraces?

Es ersetzt \n, \r\n und \t durch echte Umbrüche und Tabs. Ist der Trace in Anführungszeichen eines JSON-Strings eingebettet, werden auch maskierte Anführungszeichen zurückgewandelt.

Woran erkennt es eigenen Code?

An den Präfixen, die Sie im Feld „Eigener Code“ angeben. Ein Frame gilt als eigener Code, wenn Klassenname, Modul oder Dateipfad mit einem der Präfixe beginnt oder ihn enthält.

Werden Daten aus dem Stacktrace übertragen?

Nein. Stacktraces enthalten oft Pfade, Hostnamen oder Benutzerdaten; die Auswertung bleibt deshalb vollständig im Browser.

Kann ich den aufgeräumten Trace in ein Ticket kopieren?

Ja. Das Textfeld unten enthält die formatierte Fassung, auf Wunsch mit eingeklappten Bibliotheks-Frames als „… N Frames aus Bibliotheken“.

Welche Zeile im Stacktrace ist die wichtigste?

Meist der oberste Frame im eigenen Code der innersten Ausnahme. Bei Java ist das die letzte Caused by-Gruppe, bei Python der letzte Eintrag vor der Fehlermeldung, weil Python den Verlauf von außen nach innen ausgibt.

Was bedeutet „... 42 more“ in Java?

Die restlichen 42 Frames sind identisch mit dem Ende des umschließenden Stacktraces und wurden von der JVM gekürzt. Sie finden sie in der Ausnahme darüber.

Weitere Werkzeuge

Das könnte auch helfen

Alle 558 Werkzeuge