JSON Logger

NestJS 🟡 Mid

Définition

Le ConsoleLogger de NestJS peut émettre des logs structures en JSON via l'option json: true passée a son constructeur ou a NestFactory.create(). Chaque ligne devient un objet JSON exploitable par des agregateurs comme Datadog ou Elasticsearch, la colorisation étant désactivée automatiquement pour garder un JSON valide.

Analogie

Comme remplacer un rapport manuscrit par un formulaire a cases : chaque champ (niveau, message, contexte) est identifiable sans relecture humaine.

Exemple de code

const app = await NestFactory.create(AppModule, {
  logger: new ConsoleLogger({ json: true }),
});
// Sortie :
// {"level":"log","pid":123,"timestamp":169...,
//  "message":"Starting Nest application...","context":"NestFactory"}

Cas d'usage

Envoyer les logs applicatifs vers un système d'observabilite (CloudWatch, Datadog, ELK) sans parser du texte libre.

Anti-pattern

Garder le format texte colore en production, ce qui oblige les agregateurs a parser des chaînés non structurées.
#core#nest12#interview

En entretien

  1. Pourquoi activer json: true sur le ConsoleLogger de NestJS ?

    Ça permet d'émettre des logs structurés en JSON, exploitables par des agrégateurs comme Datadog ou Elasticsearch, la colorisation étant désactivée automatiquement pour garder un JSON valide. C'est essentiel pour envoyer les logs applicatifs vers un système d'observabilité sans parser du texte libre.

  2. Quel anti-pattern en production faut-il éviter avec les logs ?

    Garder le format texte coloré en production, ce qui oblige les agrégateurs à parser des chaînes non structurées au lieu de champs identifiables. Le JSON Logger règle ce problème dès la source.

Dans l'actu

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre