Skip to content
Learni
Voir tous les tutoriels
DevOps

Comment configurer l'agrégation de logs robuste en 2026

12 minBEGINNER
Read in English

Introduction

L'agrégation de logs consiste à collecter les journaux d'événements de différentes sources pour les centraliser. Cela facilite le débogage et la surveillance des applications. En 2026, les outils simples comme Winston permettent une mise en œuvre rapide même pour les débutants. Ce tutoriel vous montre comment implémenter une solution fonctionnelle en Node.js.

Prérequis

  • Node.js 20+
  • Connaissances basiques de JavaScript
  • Un éditeur de code (VS Code recommandé)

Initialisation du projet

terminal
mkdir log-aggregation-tutorial
cd log-aggregation-tutorial
npm init -y
npm install winston

Cette commande crée le dossier du projet et installe Winston, la bibliothèque de logging la plus utilisée pour Node.js. Elle permet de générer des logs structurés facilement.

Configuration du logger

logger.js
const winston = require('winston');

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

module.exports = logger;

Ce fichier configure Winston pour écrire les logs au format JSON dans un fichier combiné et les afficher en console. Le niveau info capture les messages importants.

Utilisation dans l'application

app.js
const logger = require('./logger');

logger.info('Application démarrée');
logger.error('Une erreur est survenue', { error: 'Exemple' });

console.log('Logs générés avec succès');

L'application importe le logger et émet des logs de différents niveaux. Les logs sont automatiquement écrits dans le fichier combiné pour l'agrégation.

Script d'agrégation simple

aggregate.js
const fs = require('fs');
const path = require('path');

const logDir = path.join(__dirname, 'logs');
const outputFile = path.join(__dirname, 'aggregated.log');

let aggregated = '';

fs.readdirSync(logDir).forEach(file => {
  if (file.endsWith('.log')) {
    const content = fs.readFileSync(path.join(logDir, file), 'utf8');
    aggregated += content + '\n';
  }
});

fs.writeFileSync(outputFile, aggregated);
console.log('Logs agrégés dans aggregated.log');

Ce script lit tous les fichiers logs du dossier et les concatène dans un fichier unique. Il fournit une agrégation basique sans outil externe.

Exécution et test

terminal
node app.js
node aggregate.js
cat aggregated.log

Exécutez ces commandes pour générer les logs puis les agréger. Le fichier final contient tous les événements centralisés.

Bonnes pratiques

  • Toujours structurer les logs en JSON pour faciliter le parsing
  • Utiliser des niveaux de log cohérents (info, warn, error)
  • Rotation des fichiers logs pour éviter les fichiers trop volumineux
  • Centraliser les logs dans un dossier dédié
  • Ajouter des métadonnées contextuelles aux logs

Erreurs courantes à éviter

  • Oublier de créer le dossier logs avant l'écriture
  • Utiliser des logs non structurés (texte brut)
  • Ne pas gérer les exceptions dans le code de logging
  • Ignorer la rotation des fichiers qui peut saturer le disque

Pour aller plus loin

Découvrez nos formations Learni pour approfondir l'observabilité et les outils avancés comme Loki ou ELK.

Comment configurer l'agrégation de logs robuste en 2026 | Learni