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.

👋 Benvenuto nella documentazione di Stackhero

Stackhero offre una soluzione Graylog cloud completamente gestita, progettata per garantire velocità e semplicità. Puoi:

  • Affidarti a un server SMTP email dedicato e illimitato incluso nel tuo servizio.
  • Applicare facilmente gli aggiornamenti con un solo clic, senza necessità di interventi manuali.
  • Utilizzare un nome di dominio personalizzato protetto da HTTPS (ad esempio, https://logs.tua-azienda.com), offrendo al tuo team un accesso diretto e sicuro.
  • Sfruttare elevate prestazioni e sicurezza su un'infrastruttura privata e dedicata, senza risorse condivise o "noisy neighbors".

Concentrati sui tuoi dati, non sugli strumenti: puoi iniziare a utilizzare la soluzione Graylog cloud hosting di Stackhero in pochi minuti.

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).