Traquer un bug intermittent en production sans logs structurés équivaut à chercher une aiguille dans une meule de foin. Maîtrisez la corrélation par X-Request-ID, les bibliothèques de logs JSON (Pino, Winston) et les outils de centralisation cloud.
Identifiant UUID traversant le frontend, Nginx et la BDD pour isoler une requête précise.
Formatage machine {level, time, msg, userId} facilitant le filtrage et les alertes.
Puissance des filtres en ligne de commande Unix pour extraire 10 lignes parmi 1 million.
Envoi des journaux vers BetterStack, Sentry ou Datadog pour conservation sécurisée.
# 1. Exemple de log structuré JSON émis par notre API Node.js (via Pino) :
{"level":50,"time":1773328800000,"pid":14820,"reqId":"req_7f3a9bc","userId":42,"err":{"message":"Cannot read properties of null (reading 'price')","stack":"TypeError: Cannot read properties of null... at calculateTotal (/var/www/api/cart.js:84:19)"},"msg":"Order checkout crashed"}
# 2. Filtrer instantanément toutes les erreurs de niveau ERROR (level 50) avec jq
$ cat /var/log/app/app.log | jq 'select(.level >= 50) | {time: .time, reqId: .reqId, msg: .msg}'
# 3. Retrouver l'intégralité du parcours d'un utilisateur ayant rencontré un bug
$ grep "req_7f3a9bc" /var/log/nginx/access.log /var/log/app/app.log
/var/log/nginx/access.log: [11/Oct/2026:15:45:10] "POST /api/v1/checkout" 500 "req_7f3a9bc"
/var/log/app/app.log: {"reqId":"req_7f3a9bc","msg":"Order checkout crashed"}Sans identifiant unique, vous devez parcourir des dizaines de milliers de lignes de logs à l'aveugle.
Avec un middleware qui génère un X-Request-ID unique renvoyé dans l'en-tête de réponse et affiché à l'utilisateur (ex: « Code d'erreur : req_7f3a »), vous tapez simplement grep req_7f3a /var/log/app.log et obtenez la ligne exacte et la cause en 2 secondes !
| Outil | Emplacement | Points Forts | Coût Typique |
|---|---|---|---|
| tail -f / grep / jq | En direct sur le serveur VPS | Instantané, zéro dépendance externe, gratuit | Gratuit (inclus dans Linux) |
| Sentry | Cloud SaaS externe | Capture automatique des exceptions avec ligne de code et alertes Slack | Plan gratuit généreux |
| BetterStack / Logtail | Cloud SaaS externe | Recherche SQL ultra-rapide sur des gigaoctets de logs | Plan gratuit (1 Go/mois) |
| Grafana Loki + Promtail | Auto-hébergé sur le VPS | Visualisation puissante intégrée aux métriques CPU/RAM | Gratuit (consomme de la RAM locale) |