logo oujood
🔍

Tutoriel Morgan : Middleware de Logging pour Express.js

OUJOOD.COM

Qu'est-ce que Morgan ?

Découvrez comment utiliser Morgan pour suivre et analyser les requêtes HTTP dans votre application Express.js. Ce tutoriel vous guide étape par étape pour maîtriser ce puissant outil de logging.

Morgan est un middleware populaire pour Express.js qui permet de logger (enregistrer) les requêtes HTTP effectuées sur votre application. Il capture automatiquement des informations importantes telles que la méthode HTTP, l'URL demandée, le statut de la réponse et bien plus encore.

Pourquoi Utiliser Morgan ?

  • Suivi des Activités : Comprenez comment les utilisateurs interagissent avec votre application.
  • Débogage Facile : Identifiez rapidement les erreurs ou comportements inattendus grâce aux logs détaillés.
  • Personnalisation : Configurez Morgan pour afficher exactement les informations dont vous avez besoin.
  • Simplicité : Intégrez Morgan facilement dans vos projets Express.js.

Installation de Morgan

Pour utiliser Morgan dans votre projet Express.js, installez-le via npm :

📋 Copier le code

npm install morgan
    

Configuration de Base

Une fois installé, intégrez Morgan dans votre application Express.js comme suit :

📋 Copier le code

const express = require('express');
const morgan = require('morgan');

const app = express();

// Utilisation de Morgan avec le format "combined"
app.use(morgan('combined'));

app.get('/', (req, res) => {
    res.send('Bonjour, Morgan !');
});

app.listen(3000, () => {
    console.log('Serveur en cours d’exécution sur http://localhost:3000');
});
    

Explication :

  • morgan('combined') : Utilise le format combiné, qui inclut des informations détaillées sur chaque requête.
  • app.use(morgan(...)) : Applique Morgan à toutes les requêtes de votre application.

Formats Disponibles dans Morgan

Morgan propose plusieurs formats prédéfinis pour logger les requêtes :

  • tiny : Format minimaliste, affiche uniquement les informations essentielles.
  • common : Format courant utilisé dans les logs web standards.
  • combined : Format complet, utilisé par Apache.

Exemple avec le format "tiny" :

📋 Copier le code

app.use(morgan('tiny'));
    

Personnalisation avec des Tokens

Avec Morgan, vous pouvez créer des logs personnalisés en utilisant des tokens. Voici un exemple :

📋 Copier le code

app.use(morgan(function (tokens, req, res) {
    return [
        tokens.method(req, res), // Méthode HTTP
        tokens.url(req, res),    // URL de la requête
        tokens.status(req, res), // Statut de la réponse
        tokens.res(req, res, 'content-length'), // Taille de la réponse
        '-',
        tokens['response-time'](req, res), // Temps de réponse
        'ms'
    ].join(' ');
}));
    

Résultat du Log :

GET / 200 123 - 5ms
    

Gestion des Logs dans un Fichier

Vous pouvez rediriger les logs vers un fichier pour une conservation à long terme. Voici un exemple :

📋 Copier le code

const fs = require('fs');
const morgan = require('morgan');

// Crée un flux d'écriture vers un fichier
const accessLogStream = fs.createWriteStream('access.log', { flags: 'a' });

// Utilise Morgan avec le flux d'écriture
app.use(morgan('combined', { stream: accessLogStream }));
    

Explication :

  • fs.createWriteStream('access.log') : Crée un fichier nommé access.log.
  • { flags: 'a' } : Ouvre le fichier en mode "append" (ajout).

Conclusion

Morgan est un outil puissant et simple à utiliser pour suivre et analyser les requêtes HTTP dans vos applications Express.js. Que vous soyez débutant ou avancé, il peut vous aider à mieux comprendre le fonctionnement de votre serveur et à identifier rapidement les problèmes.

CTA : Essayez Morgan dès aujourd'hui pour améliorer la visibilité sur votre application Express.js ! Consultez également nos autres tutoriels sur Node.js et JavaScript.