Outils de logs et d'observabilité

Formater une stack tracepour JavaScript, Python, Java, Go, C# et Rust

Collez une stack trace, laissez la détection automatique choisir le langage (ou choisissez-le vous-même), et repliez les frames de framework qui vous gênent.

Formater une stack trace

Exemple :
Langage

Stack trace

Tout s'exécute localement dans votre navigateur. La stack trace n'est jamais envoyée.

Frames

Saisie en cours… analyse automatique à venir

Une stack trace brute jetée dans un terminal ou un rapport de bug est un mur de lignes "at ..." ou "File ..." presque identiques, et la seule frame qui pointe vraiment vers votre code est souvent enterrée au milieu des appels internes du framework. Que vous l'appeliez formater une stack trace, analyser une pile d'appels ou obtenir une stack trace lisible, le résultat est le même : transformer ce mur de texte en une trace de pile qu'on peut parcourir d'un coup d'œil.

Utile au moment précis où une vraie exception survient — depuis la console du navigateur, un log CI, un rapport de crash ou un message d'un collègue — quand il faut la chaîne d'appels, le fichier et la ligne exacts, et la cause racine, sans compter à la main les blocs "Caused by:" ni faire défiler cinquante frames node_modules pour retrouver son propre code. Tout le traitement a lieu dans l'onglet du navigateur ; rien de ce qui est collé n'est envoyé où que ce soit.

Pourquoi formater une stack trace avec cet outil

Conçu pour six formats de stack trace réels, pas un motif générique plaqué dessus.

Détection automatique, mais toujours modifiable

Après avoir collé le texte, le langage est généralement détecté correctement en analysant la syntaxe des frames elles-mêmes — le menu déroulant reste rarement nécessaire. Quand une trace mélange plusieurs styles ou que la détection se trompe, six langages explicites (JavaScript/Node, Python, Java/Kotlin, Go, C#/.NET, Rust) sont à un clic, pour ne jamais rester bloqué sur une supposition qu'on ne peut pas corriger.

Un menu déroulant de langage qui passe de la détection automatique à un choix manuel, la même trace étant réanalysée

Les chaînes Caused by affichées comme des blocs distincts

Une exception Java avec une chaîne Caused by, ou un traceback Python enchaîné par "During handling of...", est divisé en blocs distincts et étiquetés, dans l'ordre — la cause racine tout en bas est aussi facile à trouver que l'exception externe tout en haut, au lieu d'un long flot de frames indistinctes.

Une stack trace Java divisée en deux blocs reliés par une étiquette Caused by, la cause racine affichée en dernier

Le bruit des frameworks se replie en une ligne

Avec Replier les frames de framework activé, les frames consécutives node_modules, site-packages ou org.springframework se replient en une ligne "N frames repliées", pour que votre propre code apparaisse en premier — chaque groupe replié se rouvre d'un clic.

Une série de frames node_modules repliée en une ligne de résumé, au-dessus de la frame propre à l'utilisateur

Trois choses que cette liste de frames fait automatiquement pour vous

Analyser une trace, replier ce qui n'a pas besoin d'être lu, et copier exactement ce qu'il faut.

01

Collez l'un des six formats pris en charge

Collez une stack trace brute JavaScript/Node, Python, Java/Kotlin, Go, C# ou Rust, sans nettoyage préalable. L'analyse se déclenche automatiquement environ 350 millisecondes après la fin de la saisie, ou désactivez l'analyse automatique pour un bouton manuel plus Ctrl/Cmd+Entrée.

  • Chargez l'un des trois exemples intégrés pour voir une chaîne Caused by, un traceback Python et du bruit node_modules sans rien taper
  • Une ligne qui ne correspond à aucun format connu reste telle quelle et est marquée "Non reconnue", sans faire échouer toute l'analyse
02

Repliez les frames que vous n'avez pas besoin de lire

Les frames node_modules, site-packages, java./org.springframework., runtime., std::/core:: ou System. consécutives (selon le langage détecté) se replient en une ligne "{count} frames repliées" quand l'option est activée. Basculer l'option ne relance pas l'analyse, elle regroupe simplement le même résultat instantanément.

  • Une seule frame de framework entourée de votre propre code reste visible — le repli ne se déclenche qu'à partir de deux frames consécutives ou plus
  • Chaque groupe replié peut être développé individuellement d'un clic, sans désactiver l'option entière
03

Copier exactement ce qu'il faut

Cliquez sur le file:line d'une frame reconnue pour copier uniquement cet emplacement — pratique pour sauter directement à la bonne ligne dans votre éditeur. Copier et Télécharger exportent la trace entière reformatée en texte brut, dans le style propre au langage ; les deux restent désactivés dès que l'entrée ou une option change, pour ne jamais repartir avec une copie obsolète.

  • Le type et le message de l'exception sont mis en évidence en haut de chaque bloc, y compris pour chaque cause Caused by
Formater une stack trace maintenant

Ce que cette liste de frames apporte de plus qu'un texte brut

Des champs structurés, la détection des chaînes et le repli du bruit, pour six formats réels.

Reconnaissance des frames pour six langages

JavaScript/Node, Python, Java/Kotlin, Go, C#/.NET et Rust ont chacun leur propre syntaxe de frame, décomposée en nom de fonction, fichier, ligne et colonne là où le format le permet — pas juste ligne par ligne. C'est ce qui permet de formater une stack trace comme le ferait le runtime lui-même.

Chaînes Caused by et traceback

La chaîne Caused by de Java et les tracebacks à plusieurs niveaux de Python sont détectés comme des blocs distincts, dans l'ordre, cause racine incluse — sans compter les niveaux d'indentation à l'œil.

Bruit des frameworks repliable

node_modules, site-packages, java./org.springframework. et autres espaces de noms de framework se replient en une ligne de résumé selon les règles propres à chaque langage, et tout groupe replié se rouvre d'un clic.

Copie file:line par frame

Chaque frame reconnue a son propre bouton de copie, pour son fichier et sa ligne uniquement, séparé de la copie de la trace entière.

Les lignes non reconnues restent visibles

Une ligne qui ne correspond pas à la syntaxe du format choisi n'est pas supprimée : elle reste en place, marquée "Non reconnue", sans faire échouer toute l'analyse.

Ce que cet outil fait, et ce qu'il ne fait pas

Le comportement réel et ses limites, pas une clause de non-responsabilité générique.

Pas de symbolisation ni d'inversion de source map
Les noms de fonctions minifiés et les chemins compressés sont affichés tels quels. Les retrouver dans le code source d'origine nécessiterait la source map ou les symboles de debug correspondants, que cet outil pour formater une stack trace ne télécharge ni ne récupère jamais.
Uniquement des stack traces textuelles, pas de dumps binaires
Les core dumps, minidumps et autres artefacts de crash binaires ne sont pas acceptés — collez la stack trace textuelle déjà affichée par votre runtime ou votre outil de rapport de crash.
Six langages déclarés, pas une supposition ouverte
Seule la syntaxe de frame de JavaScript/Node, Python, Java/Kotlin, Go, C#/.NET et Rust est reconnue. Les traces Ruby, PHP, C/C++ et Swift reviendront en grande partie "Non reconnues" plutôt que d'être forcées dans le mauvais format.
Copier et télécharger produisent toujours du texte brut
Le résultat reformaté ne s'enveloppe jamais dans un bloc de code Markdown, contrairement à certains outils concurrents — il reste en texte brut pour se coller proprement dans un terminal, un éditeur ou un ticket.

Questions fréquentes pour formater une stack trace

Les questions que l'on se pose avant de coller une vraie exception dans un outil en ligne.

Est-il sûr de coller une stack trace dans un outil en ligne ?

Oui — cet outil analyse tout en JavaScript dans l'onglet actuel du navigateur. Rien de ce qui est collé n'est envoyé, enregistré ou transmis à un serveur, y compris les chemins de fichiers locaux ou les noms d'utilisateur qui apparaissent dans les frames.

Comment masquer les frames node_modules dans une stack trace ?

Activez Replier les frames de framework dans la barre d'outils. Les frames node_modules consécutives (ou site-packages, java./org.springframework., etc.) se replient en une ligne, et cliquer dessus rouvre le groupe.

Cet outil pour formater une stack trace prend-il en charge Java, Python et JavaScript ?

Oui, ainsi que Go, C#/.NET et Rust — six langages au total. La détection automatique choisit généralement le bon langage à partir de la syntaxe des frames ; il est aussi possible de forcer un langage précis dans le menu déroulant.

Quelle est la différence entre stack trace, traceback et backtrace ?

C'est le même concept sous des noms différents selon l'écosystème — Python parle de traceback, C et Ruby disent souvent backtrace, et JavaScript, Java, C#, Go et Rust parlent en général de stack trace. Cet outil les reconnaît toutes ; peu importe le terme utilisé.

Les chemins de fichiers ou noms d'utilisateur sont-ils retirés avant le partage ?

Non — les chemins et autres détails sont affichés tels que collés, rien n'est masqué automatiquement. Comme rien ne quitte le navigateur de toute façon, mieux vaut relire le texte soi-même avant de le coller ailleurs, comme dans un tracker de bugs public.

Est-ce que ça fonctionne aussi pour les panics Go et les backtraces Rust, pas seulement les exceptions ?

Oui. Les dumps de goroutine Go (une ligne de fonction suivie d'une ligne file:line indentée par une tabulation) et la sortie numérotée de Rust avec RUST_BACKTRACE=1 sont analysés de la même façon que les langages à exceptions, y compris leurs propres motifs de frames de framework comme runtime. ou std::/core::.

Une vraie trace que cet outil analyse mal ?

Formater une stack trace maintenant

Collez une stack trace JavaScript, Python, Java, Go, C# ou Rust et obtenez une liste de frames lisible en moins d'une seconde — sans envoi, sans compte.

Ajoutez cet outil gratuit à vos favoris pour la prochaine exception qui atterrit dans votre terminal ou votre boîte mail.

Toute l'analyse s'effectue localement dans votre navigateur.