"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Mejores prácticas de registro para su aplicación Node.js

Mejores prácticas de registro para su aplicación Node.js

Publicado el 2024-08-23
Navegar:729

Logging Best Practices For Your Node.js App

Como desarrollador de Node.js, el registro lo es prácticamente todo cuando se trata de depurar, monitorear y mantener sus aplicaciones. Pero, ¿está utilizando las mejores prácticas de registro? Exploremos algunas técnicas de registro que pueden llevar sus aplicaciones Node.js al siguiente nivel.

Para obtener más información, puedes consultar la publicación completa del blog.

1. Winston: la navaja suiza de la tala

? Herramienta: Winston
? Descripción: Una biblioteca de registro versátil para Node.js
? Características clave:

  • Múltiples opciones de transporte (consola, archivo, base de datos)
  • Niveles de registro personalizables
  • Admite el registro en varios formatos (JSON, texto sin formato)
javascriptCopyconst winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.json(),
  transports: [
    new winston.transports.File({ filename: 'error.log', level: 'error' }),
    new winston.transports.File({ filename: 'combined.log' })
  ]
});

2. Morgan: Middleware de registro de solicitudes HTTP

? Herramienta: Morgan
? Descripción: Simplifica el registro de solicitudes HTTP en Express.js
? Características clave:

  • Formatos de registro predefinidos
  • Soporte de token personalizado
  • Fácil integración con Express.js
javascriptCopyconst express = require('express');
const morgan = require('morgan');

const app = express();
app.use(morgan('combined'));

3. Bunyan: Registro JSON para Node.js

? Herramienta: Bunyan
? Descripción: Registro JSON estructurado para aplicaciones Node.js
? Características clave:

  • Formato de registro JSON por defecto
  • Admite registradores secundarios
  • CLI integrada para ver registros
javascriptCopyconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});

log.info("Hi");
log.warn({lang: 'fr'}, "Au revoir");

4. Pino: registrador Node.js súper rápido

? Herramienta: Pino
? Descripción: Registro de gastos generales reducidos con salida JSON
? Características clave:

  • Rendimiento extremadamente rápido
  • Rotación automática de registros
  • Admite registradores secundarios
javascriptCopyconst pino = require('pino');
const logger = pino();

logger.info('hello world');
logger.error('this is at error level');

5. depuración: pequeña utilidad de depuración

? Herramienta: depurar
? Descripción: Pequeña utilidad de depuración para Node.js
? Características clave:

  • Ligero y fácil de usar
  • Depuración selectiva con espacios de nombres
  • Soporte del navegador
javascriptCopyconst debug = require('debug')('http');

debug('booting %o', name);

6. Log4js: Registro flexible para JavaScript

? Herramienta: Log4js
? Descripción: Una conversión del marco log4j a JavaScript
? Características clave:

  • Niveles de registro jerárquico
  • Múltiples anexos de salida
  • Diseños configurables
javascriptCopyconst log4js = require("log4js");
log4js.configure({
  appenders: { cheese: { type: "file", filename: "cheese.log" } },
  categories: { default: { appenders: ["cheese"], level: "error" } }
});

const logger = log4js.getLogger("cheese");
logger.error("Cheese is too ripe!");

7. Elasticsearch, Logstash y Kibana (pila ELK)

? Herramienta: Pila ELK
? Descripción: Una poderosa combinación para la gestión y el análisis de registros
? Características clave:

  • Registro centralizado
  • Análisis de registros en tiempo real
  • Visualizaciones y paneles de control
javascriptCopyconst winston = require('winston');
const Elasticsearch = require('winston-elasticsearch');

const esTransportOpts = {
  level: 'info',
  clientOpts: { node: 'http://localhost:9200' }
};
const logger = winston.createLogger({
  transports: [
    new Elasticsearch(esTransportOpts)
  ]
});

8. Sentry: seguimiento de errores y supervisión del rendimiento

? Herramienta: Centinela
? Descripción: Seguimiento de errores y supervisión del rendimiento en tiempo real
? Características clave:

  • Captura automática de errores
  • Seguimiento de versiones
  • Supervisión del rendimiento
javascriptCopyconst Sentry = require("@sentry/node");

Sentry.init({ dsn: "https://[email protected]/0" });

try {
  someFunction();
} catch (e) {
  Sentry.captureException(e);
}

9. Nueva reliquia: supervisión del rendimiento de las aplicaciones

? Herramienta: Nueva Reliquia
? Descripción: Monitoreo integral del rendimiento de las aplicaciones
? Características clave:

  • Métricas de rendimiento en tiempo real
  • Análisis de errores
  • Instrumentación personalizada
javascriptCopyconst newrelic = require('newrelic');

newrelic.setTransactionName('myCustomTransaction');
// Your application code here

10. Loggly: gestión de registros basada en la nube

? Herramienta: Loggly
? Descripción: Servicio de análisis y gestión de registros basado en la nube
? Características clave:

  • Gestión de registros centralizada
  • Búsqueda y análisis de registros en tiempo real
  • Paneles de control y alertas personalizados
javascriptCopyconst winston = require('winston');
const { Loggly } = require('winston-loggly-bulk');

winston.add(new Loggly({
    token: "YOUR-TOKEN",
    subdomain: "YOUR-SUBDOMAIN",
    tags: ["Winston-NodeJS"],
    json: true
}));

winston.log('info', "¡Hola mundo desde Node.js!");

Consejo adicional: registro estructurado

Independientemente de la herramienta que elija, implementar el registro estructurado puede mejorar enormemente sus capacidades de análisis de registros:

javascriptCopylogger.info({
  event: 'user_login',
  userId: user.id,
  timestamp: new Date().toISOString(),
  ipAddress: req.ip
});

Al utilizar estas herramientas y prácticas adicionales, tendrá una estrategia de registro integral que cubre todo, desde la depuración básica hasta el monitoreo avanzado del rendimiento de las aplicaciones. Recuerde, la clave para un registro eficaz es elegir las herramientas adecuadas para sus necesidades específicas y aplicar sistemáticamente las mejores prácticas en todo su código base.

Si necesita ayuda para depurar su aplicación web, consulte https://alerty.ai para obtener más información sobre cómo monitorear el frontend fácilmente.

¡Feliz inicio de sesión y que tus aplicaciones Node.js funcionen sin problemas! ??

Declaración de liberación Este artículo se reproduce en: https://dev.to/alertyai/logging-best-practices-for-your-nodejs-app-4o9k?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3