Journalisation pour TypeScript : la bibliothèque Winston

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Qu'est-ce que Winston et pourquoi en avez-vous besoin ?

Winston est une bibliothèque de journalisation populaire pour TypeScript et JavaScript. Elle fournit un système flexible d'enregistrement de logs avec le support de multiples transports (sortie vers la console, fichier, base de données, HTTP), de niveaux de journalisation et de formatage des messages. Dans les grands projets, la journalisation est essentielle pour le débogage, la surveillance et l'audit des actions des utilisateurs ou du système. Winston permet de structurer les logs, de les filtrer par importance et de les conserver sous une forme facile à analyser.

Comment installer Winston dans TypeScript

Pour l'installation, exécutez la commande dans le terminal :

npm install winston

Il est également recommandé d'installer les types pour TypeScript :

npm install --save-dev @types/winston

Fonctionnalités principales de Winston

  • Niveaux de journalisation : error, warn, info, verbose, debug, silly (personnalisables).
  • Transports : Console, File, HTTP, MongoDB, Syslog et autres.
  • Formatage : JSON, texte simple, horodatage, couleurs.
  • Asynchronisme : ne bloque pas le thread principal.
  • Profils personnalisés : création de vos propres niveaux et transports.

Exemple de code en TypeScript

import winston from 'winston';

const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.Console({ format: winston.format.simple(), }), new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }), ],});

logger.info('Application démarrée');logger.error('Erreur de connexion à la base de données');

Ce code crée un logger qui écrit tous les messages de niveau info et supérieur dans la console, les erreurs dans error.log, et tous les logs dans combined.log.

Quand utiliser Winston

Winston convient à toutes les applications serveur sur Node.js (Express, NestJS, Koa), aux microservices, aux utilitaires CLI et aux scripts complexes. Il est particulièrement utile dans un environnement de production où un stockage centralisé des logs, une rotation des fichiers et une intégration avec des systèmes de surveillance (ELK, Splunk) sont nécessaires. Pour les projets simples, vous pouvez utiliser le console.log intégré, mais Winston offre contrôle et évolutivité.

Recommendations