Stacktrace formatieren und lesbar machen
Stacktrace formatieren für Java, Python, JavaScript und .NET: Zeilenumbrüche wiederherstellen, eigenen Code hervorheben, Framework-Frames einklappen.
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
- Den Stacktrace in das Feld „Stacktrace“ einfügen, auch einzeilig aus einem JSON-Log mit
\n. - Bei „Sprache“ automatische Erkennung lassen oder Java, Python, JavaScript bzw. .NET wählen.
- Unter „Eigener Code“ Paket- oder Pfadanfänge wie
com.exampleodersrc/eintragen. - 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
\nsteht, 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 byoderInnerExceptiongetrennt betrachten.
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.
Das könnte auch helfen
Cron-Ausdruck erklären
Crontab-Zeilen mit 5 oder 6 Feldern auf Deutsch erklärt, mit den nächsten 10 Ausführungen.
ÖffnenCron-Generator
Zeitplan im Formular wählen und die fertige Crontab-Zeile kopieren.
ÖffnenUnix-Zeitstempel umrechnen
Timestamp in Datum und zurück, Sekunden und Millisekunden erkannt, UTC und Berlin.
ÖffnenUUID-Generator
UUID v4 und v7 erzeugen, bis zu 1.000 auf einmal, und vorhandene UUIDs prüfen.
ÖffnenULID-Generator
Sortierbare IDs in Crockford Base32 erzeugen, dekodieren und in UUID umwandeln.
ÖffnenTexte vergleichen (Diff)
Unterschiede zwischen zwei Texten zeilen-, wort- oder zeichenweise finden.
Öffnen