Graylog: Utiliser le package Winston GELF pour envoyer des logs Node.js vers Graylog

Cette documentation fait partie du guide Utilisation avec Node.js. Consultez le guide complet ici : Comment envoyer des logs de Node.js vers Graylog.

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution Graylog cloud prête à l'emploi qui offre de nombreux avantages, notamment :

  • Serveur e-mail SMTP illimité et dédié inclus.
  • Mises à jour sans effort en un clic.
  • Nom de domaine personnalisable sécurisé avec HTTPS (par exemple, https://logs.votre-entreprise.com).
  • Performance optimale et sécurité robuste grâce à une VM privée et dédiée.

Gagnez du temps et simplifiez-vous la vie : il suffit de 5 minutes pour essayer la solution Graylog cloud hosting de Stackhero !

warning Il est préférable d'utiliser le package graylog2 sauf si Winston fait déjà partie de votre projet. Dans ce cas, vous pouvez le remplacer par winston-gelf.

Pour installer le package Winston GELF, exécutez :

npm install winston-gelf

Si Winston n'est pas déjà dans votre projet, vous pouvez l'ajouter avec :

npm install winston

Voici une configuration de base :

const winston = require('winston');
const winstonGelf = require('winston-gelf');
const process = require('process');

const logger = winston.createLogger({
  transports: [
    new winston.transports.Console(),
    new winstonGelf({
      // Consultez toutes les options gelfPro ici : https://www.npmjs.com/package/gelf-pro
      gelfPro: {
        fields: {
          env: process.env.NODE_ENV || 'development'
        },
        adapterName: 'udp',
        adapterOptions: {
          host: '<XXXXXX>.stackhero-network.com', // Remplacez par votre domaine Graylog
          port: 12201,
        }
      }
    })
  ]
});

// Exemple de log informatif
logger.info('This is a log information');

// Exemple de log d'erreur
try {
  throw Error('This is an example error');
}
catch(error) {
  logger.warn({ message: 'Error triggered', error });
}

N'oubliez pas de configurer votre input Graylog (voir détails ci-dessous).