Graylog: Uso del paquete Winston GELF para enviar logs de Node.js a Graylog

Esta documentación forma parte de la guía Uso con Node.js. Consulte la guía completa aquí: Cómo enviar logs desde Node.js a Graylog.

👋 Bienvenido a la documentación de Stackhero

Stackhero ofrece una solución Graylog cloud totalmente gestionada, diseñada para ofrecer velocidad y simplicidad. Puede:

  • Contar con un servidor SMTP de correo electrónico dedicado e ilimitado incluido con su servicio.
  • Aplicar actualizaciones fácilmente con un solo clic, sin necesidad de intervención manual.
  • Utilizar un nombre de dominio personalizado protegido por HTTPS (por ejemplo, https://logs.su-empresa.com), proporcionando a su equipo un acceso directo y seguro.
  • Disfrutar de un alto nivel de rendimiento y seguridad en una infraestructura privada y dedicada, sin recursos compartidos ni vecinos ruidosos.

Concéntrese en sus datos, no en sus herramientas: puede empezar a utilizar la solución de Graylog cloud hosting de Stackhero en solo unos minutos.

warning Es preferible utilizar el paquete graylog2 salvo que Winston ya forme parte de su proyecto. En ese caso, puede sustituirlo por winston-gelf.

Para instalar el paquete Winston GELF, ejecute:

npm install winston-gelf

Si Winston aún no está en su proyecto, puede añadirlo con:

npm install winston

Aquí tiene una configuración básica:

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

const logger = winston.createLogger({
  transports: [
    new winston.transports.Console(),
    new winstonGelf({
      // Consulte todas las opciones de gelfPro aquí: https://www.npmjs.com/package/gelf-pro
      gelfPro: {
        fields: {
          env: process.env.NODE_ENV || 'development'
        },
        adapterName: 'udp',
        adapterOptions: {
          host: '<XXXXXX>.stackhero-network.com', // Sustituya por su dominio de Graylog
          port: 12201,
        }
      }
    })
  ]
});

// Ejemplo de log informativo
logger.info('This is a log information');

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

No olvide configurar su entrada de Graylog (más detalles a continuación).