Logs & Observability-Tools

Stacktrace formatierenfür JavaScript, Python, Java, Go, C# und Rust

Stacktrace einfügen, die Sprache automatisch erkennen lassen (oder manuell wählen) und Framework-Frames bei Bedarf einklappen.

Stacktrace formatieren

Beispiel:
Sprache

Stacktrace

Läuft vollständig lokal im Browser. Der Stacktrace wird nicht hochgeladen.

Frames

Eingabe läuft … wird automatisch geparst

Ein roher Stacktrace aus dem Terminal oder einem Bugreport ist eine Wand fast identischer "at ..."- oder "File ..."-Zeilen, und genau der eine Frame, der auf den eigenen Code zeigt, steckt meist mitten in den Framework-Internals. Ob man es Stacktrace formatieren, Stack Trace lesbar machen oder Stacktrace analysieren nennt – die Aufgabe bleibt gleich: aus dieser Textwand wird eine Liste, die sich in Sekunden überblicken lässt.

Nützlich ist es genau in dem Moment, in dem eine echte Exception vorliegt – aus der Browser-Konsole, einem CI-Log, einem Crash-Report oder einer Nachricht eines Kollegen – und die Aufrufkette, die genaue Datei- und Zeilenangabe sowie die eigentliche Ursache gebraucht werden, ohne "Caused by:"-Blöcke von Hand zu zählen oder an fünfzig node_modules-Frames vorbeizuscrollen. Die gesamte Verarbeitung läuft im Browser-Tab; nichts von dem, was eingefügt wird, wird hochgeladen. Am Ende steht immer dasselbe Ziel: den Stack Trace lesbar machen, bevor er geteilt oder debuggt wird.

Warum sich dieses Stacktrace formatieren lohnt

Für sechs echte Stacktrace-Formate gebaut, nicht ein generisches Muster, das übergestülpt wird.

Automatische Erkennung, trotzdem überschreibbar

Nach dem Einfügen wird die Sprache meist korrekt anhand der Frame-Syntax erkannt – das Dropdown bleibt meist unangetastet. Passt ein Trace zu mehreren Stilen oder liegt die Erkennung daneben, lassen sich sechs Sprachen (JavaScript/Node, Python, Java/Kotlin, Go, C#/.NET, Rust) mit einem Klick fest einstellen, statt an einer falschen Vermutung festzuhängen.

Ein Sprachdropdown wechselt von automatischer Erkennung zu einer manuell gewählten Sprache, derselbe Trace wird neu geparst

Caused-by-Ketten als eigene Blöcke

Eine Java-Exception mit Caused-by-Kette oder ein durch "During handling of..." verkettetes Python-Traceback wird in eigene, beschriftete Blöcke in der richtigen Reihenfolge aufgeteilt – die Ursache ganz unten ist so leicht zu finden wie die äußere Exception ganz oben, statt eines langen, kaum unterscheidbaren Frame-Stroms.

Ein Java-Stacktrace, aufgeteilt in zwei durch Caused by verbundene Blöcke, die Ursache steht ganz unten

Framework-Rauschen in einer Zeile

Mit Framework-Frames einklappen falten sich aufeinanderfolgende node_modules-, site-packages- oder org.springframework-Frames zu einer Zeile "N Frames eingeklappt" – der eigene Code steht damit zuerst im Blick. Jede eingeklappte Gruppe lässt sich mit einem Klick wieder öffnen.

Eine Folge von node_modules-Frames ist zu einer Zusammenfassungszeile eingeklappt, darüber steht der eigene Frame

Drei Dinge, die diese Frame-Liste automatisch übernimmt

Einen Trace parsen, unnötige Frames einklappen und genau das kopieren, was gebraucht wird.

01

Eines von sechs unterstützten Formaten einfügen

Rohe JavaScript/Node-, Python-, Java/Kotlin-, Go-, C#- oder Rust-Stacktraces lassen sich ohne vorheriges Aufräumen einfügen. Etwa 350 Millisekunden nach dem letzten Tastenanschlag wird automatisch geparst, oder die automatische Auswertung wird ausgeschaltet zugunsten eines Buttons plus Strg/Cmd+Enter.

  • Eines der drei eingebauten Beispiele lädt eine Caused-by-Kette, ein Python-Traceback und node_modules-Rauschen, ohne dass etwas eingetippt werden muss
  • Eine Zeile, die zu keinem bekannten Frame-Format passt, bleibt unverändert stehen und wird als "Nicht erkannt" markiert, statt das ganze Parsen scheitern zu lassen
02

Frames einklappen, die niemand lesen muss

Bei aktiviertem Einklappen falten sich aufeinanderfolgende node_modules-, site-packages-, java./org.springframework.-, runtime.-, std::/core::- oder System.-Frames (je nach erkannter Sprache) zu einer Zeile "{count} Frames eingeklappt". Das Umschalten löst kein erneutes Parsen aus, sondern gruppiert dasselbe Ergebnis sofort neu.

  • Ein einzelner Framework-Frame zwischen eigenem Code bleibt sichtbar – erst ab zwei aufeinanderfolgenden Frames wird zusammengefasst
  • Jede eingeklappte Gruppe lässt sich einzeln per Klick ausklappen, ohne den gesamten Schalter umzulegen
03

Genau das kopieren, was gebraucht wird

Ein Klick auf file:line eines erkannten Frames kopiert nur diese Position – praktisch, um im Editor direkt zur passenden Zeile zu springen. Kopieren und Herunterladen im Ergebnisbereich exportieren den gesamten neu formatierten Trace als Klartext im Stil der jeweiligen Sprache; beide Buttons werden deaktiviert, sobald Eingabe oder Optionen sich ändern, sodass nie ein veraltetes Ergebnis kopiert wird.

  • Über jedem Block werden Exception-Typ und -Nachricht hervorgehoben, auch für jede Caused-by-Ursache
Jetzt Stacktrace formatieren

Was die Frame-Liste gegenüber rohem Text zusätzlich bietet

Strukturierte Felder, Kettenerkennung und Rauschunterdrückung für sechs echte Formate – dieses Stacktrace-formatieren-Tool liest sich wie die Ausgabe der Runtime selbst.

Frame-Erkennung für sechs Sprachen

JavaScript/Node, Python, Java/Kotlin, Go, C#/.NET und Rust haben jeweils eine eigene Frame-Syntax und werden dort, wo das Format es hergibt, in Funktionsname, Datei, Zeile und Spalte zerlegt – nicht einfach zeilenweise zerschnitten.

Caused-by- und Traceback-Ketten

Javas Caused-by-Kette und Pythons mehrstufige Tracebacks werden als eigene, geordnete Blöcke erkannt, die Ursache eingeschlossen – ohne Einrückungsebenen von Hand zu zählen.

Framework-Rauschen einklappbar

node_modules, site-packages, java./org.springframework. und ähnliche Namensräume werden je Sprache nach eigenen Regeln zu einer Zusammenfassungszeile eingeklappt, jede Gruppe lässt sich mit einem Klick wieder öffnen.

Kopieren einzelner file:line-Angaben

Jeder erkannte Frame hat eine eigene Kopierfunktion nur für seine Datei und Zeile, getrennt vom Kopieren des gesamten Traces.

Nicht erkannte Zeilen bleiben sichtbar

Eine Zeile, die nicht zur Syntax des gewählten Formats passt, wird nicht verworfen, sondern bleibt stehen und als "Nicht erkannt" markiert, ohne das gesamte Parsen scheitern zu lassen.

Was dieses Tool tut – und was nicht

Das tatsächliche Verhalten und die echten Grenzen, kein pauschaler Disclaimer.

Keine Symbolisierung, keine Source-Map-Auflösung
Minifizierte Funktionsnamen und komprimierte Pfade werden genau so angezeigt wie eingefügt. Um sie in echte Quellpositionen zurückzuverwandeln, wäre die passende Source Map oder Debug-Symbole nötig – dieser Stacktrace Formatter lädt dafür nichts hoch und ruft nichts extern ab.
Nur Text-Stacktraces, keine Binärdumps
Core Dumps, Minidumps und andere binäre Crash-Artefakte werden nicht akzeptiert – bitte den Text-Stacktrace einfügen, den Runtime oder Crash-Reporter bereits ausgegeben haben.
Sechs deklarierte Sprachen, kein offenes Raten
Erkannt wird nur die Frame-Syntax von JavaScript/Node, Python, Java/Kotlin, Go, C#/.NET und Rust. Ruby-, PHP-, C/C++- und Swift-Traces kommen größtenteils als "Nicht erkannt" zurück, statt in ein falsches Format gepresst zu werden.
Kopieren und Herunterladen liefern immer Klartext
Das neu formatierte Ergebnis wird nie in einen Markdown-Codeblock verpackt, auch wenn manche vergleichbaren Tools das tun – reiner Text lässt sich sauber in Terminal, Editor oder Ticket einfügen.

Häufige Fragen zum Stacktrace formatieren

Antworten auf Fragen, die vor dem Einfügen einer echten Exception in ein Online-Tool aufkommen.

Ist es sicher, einen Stacktrace in ein Online-Tool einzufügen?

Ja – dieses Tool parst alles als JavaScript im aktuellen Browser-Tab. Nichts von dem, was eingefügt wird, wird hochgeladen, protokolliert oder an einen Server gesendet, auch keine lokalen Dateipfade oder Benutzernamen, die in den Frames auftauchen.

Wie blende ich node_modules-Frames in einem Stacktrace aus?

Framework-Frames einklappen in der Werkzeugleiste aktivieren. Aufeinanderfolgende node_modules- (oder site-packages-, java./org.springframework.-) Frames falten sich zu einer Zeile, ein Klick darauf öffnet die Gruppe wieder.

Unterstützt dieses Stacktrace-formatieren-Tool Java, Python und JavaScript?

Ja, zusammen mit Go, C#/.NET und Rust – sechs Sprachen insgesamt. Die automatische Erkennung wählt meist anhand der Frame-Syntax die richtige Sprache, sie lässt sich aber auch im Dropdown fest einstellen.

Was ist der Unterschied zwischen Stacktrace, Traceback und Backtrace?

Dasselbe Konzept unter verschiedenen Namen je Ökosystem – Python nennt es Traceback, C und Ruby oft Backtrace, JavaScript, Java, C#, Go und Rust meist Stacktrace. Dieses Tool erkennt alle davon; welcher Begriff verwendet wird, spielt keine Rolle.

Werden Dateipfade oder Benutzernamen vor dem Teilen automatisch entfernt?

Nein – Pfade und andere Details werden genau so angezeigt wie eingefügt, nichts wird automatisch geschwärzt. Da ohnehin nichts den Browser verlässt, lohnt sich ein eigener Blick, bevor der Text an einer weniger privaten Stelle wie einem öffentlichen Bugtracker eingefügt wird.

Funktioniert es auch für Go-Panics und Rust-Backtraces, nicht nur Exceptions?

Ja. Go-Goroutine-Dumps (eine Funktionszeile plus eine mit Tab eingerückte file:line-Zeile) und Rusts nummerierte Frame-Ausgabe mit RUST_BACKTRACE=1 werden genauso geparst wie die Exception-Sprachen, einschließlich eigener Framework-Frame-Muster wie runtime. oder std::/core::.

Einen echten Trace gefunden, den dieses Tool falsch parst?

Jetzt den Stacktrace formatieren

JavaScript-, Python-, Java-, Go-, C#- oder Rust-Stacktrace einfügen und in unter einer Sekunde eine lesbare Frame-Liste erhalten – kein Upload, kein Konto nötig.

Dieses kostenlose Tool zum Stacktrace formatieren als Lesezeichen speichern, für die nächste Exception im Terminal oder im Posteingang.

Die gesamte Verarbeitung läuft lokal im Browser.