Graylog: Utilizzo del pacchetto Winston GELF per inviare i log di Node.js a Graylog

Questa documentazione fa parte della guida Utilizzo con Node.js. Consulta la guida completa qui: Come inviare i log da Node.js a Graylog.

👋 Benvenuti nella documentazione di Stackhero!

Stackhero offre una soluzione Graylog cloud pronta all'uso che fornisce numerosi vantaggi, tra cui:

  • Server email SMTP illimitato e dedicato incluso.
  • Aggiornamenti senza sforzo con un solo clic.
  • Nome di dominio personalizzabile sicuro con HTTPS (ad esempio, https://logs.tua-azienda.com).
  • Prestazioni ottimali e sicurezza robusta grazie a una VM privata e dedicata.

Risparmia tempo e semplifica la tua vita: bastano 5 minuti per provare la soluzione Graylog cloud hosting di Stackhero!

warning È preferibile utilizzare il pacchetto graylog2 a meno che Winston non sia già parte del vostro progetto. In tal caso, potete sostituirlo con winston-gelf.

Per installare il pacchetto Winston GELF, eseguite:

npm install winston-gelf

Se Winston non è già presente nel vostro progetto, potete aggiungerlo con:

npm install winston

Ecco una configurazione di 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({
      // Consultate tutte le opzioni di gelfPro qui: https://www.npmjs.com/package/gelf-pro
      gelfPro: {
        fields: {
          env: process.env.NODE_ENV || 'development'
        },
        adapterName: 'udp',
        adapterOptions: {
          host: '<XXXXXX>.stackhero-network.com', // Sostituite con il vostro dominio Graylog
          port: 12201,
        }
      }
    })
  ]
});

// Esempio di log informativo
logger.info('This is a log information');

// Esempio di log di errore
try {
  throw Error('This is an example error');
}
catch(error) {
  logger.warn({ message: 'Error triggered', error });
}

Non dimenticate di configurare il vostro input Graylog (vedi dettagli sotto).