paint-brush
Las 10 mejores bibliotecas de registro de Node.jspor@playerzero
51,670 lecturas
51,670 lecturas

Las 10 mejores bibliotecas de registro de Node.js

por PlayerZero22m2023/02/15
Read on Terminal Reader

Demasiado Largo; Para Leer

Reunimos una lista de las 10 principales bibliotecas de registro de Node.js y le proporcionamos el código que necesita para usarlas. ¡Disfrutar!
featured image - Las 10 mejores bibliotecas de registro de Node.js
PlayerZero HackerNoon profile picture
0-item

Este blog discutirá el valor de utilizar bibliotecas de registro y analizará las 10 herramientas de registro mejor revisadas que hemos encontrado para Node.js. En @playerzero usamos las bibliotecas de registro de node.js a menudo para crear y administrar eventos de registro. Obtenga más información sobre cómo estamos implementando nuestro enfoque único para monitorear lo que importa tanto para las aplicaciones frontales como para las internas hoy https://www.playerzero.app/


  • pino

  • Winston

  • Bunyán

  • morgan

  • Nivel de registro

  • log4js

  • Npmlog

  • Rugido

  • Trazador

  • señal


Desde una perspectiva de alto nivel, el registro de Node.js es importante porque ayuda a los desarrolladores a realizar un seguimiento de los eventos y el rendimiento de su aplicación, diagnosticar y corregir problemas, monitorear el comportamiento del sistema y tomar decisiones informadas. El registro proporciona un registro de la actividad de una aplicación, lo que permite a los desarrolladores identificar y depurar problemas, comprender el comportamiento del usuario y mejorar el rendimiento general y la estabilidad del sistema. El registro también puede ser útil en entornos de producción para detectar y corregir errores, monitorear el rendimiento del sistema y detectar incidentes de seguridad.

Registro vs rastreo

Cada vez que algo sale muy mal en una aplicación, los desarrolladores tienen la opción de rastrear su origen a través de un seguimiento de pila. Pero... confiar solo en los rastros de la pila solo pinta la mitad de la imagen. El seguimiento le proporcionará información sobre la ejecución de una aplicación, incluido el flujo de solicitudes, las consultas de la base de datos, las llamadas API externas y las métricas de rendimiento, que pueden ser muy útiles. En general, los seguimientos se utilizan para comprender el comportamiento de una aplicación a nivel granular y para identificar cuellos de botella en el rendimiento.


El registro llena la otra mitad de la imagen. El registro es el proceso de registrar mensajes y eventos relacionados con una aplicación, como errores, advertencias, métricas de rendimiento e información de depuración. El inicio de sesión en Node.js se usa para diagnosticar problemas, comprender el comportamiento del usuario y mejorar el rendimiento general y la estabilidad de una aplicación. También proporciona un registro de la actividad en una aplicación, lo que permite a los desarrolladores identificar y depurar problemas y tomar decisiones más informadas.

¿Por qué usar bibliotecas de registro para Node.js?

Hay varias razones por las que debería usar las bibliotecas de registro de Node.js:


  1. Depuración mejorada : las bibliotecas de registro brindan información detallada sobre errores y problemas, lo que permite a los desarrolladores diagnosticar y solucionar problemas de manera más eficiente.
  2. Visibilidad mejorada : el registro proporciona una visión clara del comportamiento y el rendimiento de una aplicación, lo que permite a los desarrolladores tomar decisiones informadas y mejorar el sistema.
  3. Mejor rendimiento : el rendimiento de las bibliotecas de registro se puede optimizar, lo que reduce la sobrecarga del registro y mejora el rendimiento general del sistema.
  4. Registro centralizado : muchas bibliotecas de registro permiten que los registros se escriban en un servidor de registro centralizado, lo que facilita la recopilación, visualización y análisis de datos de registro.
  5. Personalización : las bibliotecas de registro se pueden personalizar para satisfacer necesidades específicas, como niveles de registro personalizados, formatos de salida y filtros.

Niveles de registro

Los niveles de registro son una forma de categorizar la importancia o la gravedad de los mensajes de registro. Por lo general, hay varios niveles, que van desde errores críticos hasta mensajes informativos, y cada nivel está asociado con un valor numérico que se puede usar para filtrar mensajes de registro en una biblioteca. Estos son los niveles más comunes:


Nivel de registro FATAL

Quizás, como era de esperar, el nivel de registro FATAL es un nivel de gravedad que indica un error crítico en una aplicación, lo que significa que los registros con un nivel FATAL indican que la aplicación no puede continuar ejecutándose normalmente sin la intervención del desarrollador.


Nivel de registro ERROR

El nivel de registro ERROR indica que una aplicación es actualmente capaz de ejecutarse, PERO, está encontrando un problema. Por lo general, esto indica que una tarea requerida en la aplicación falló, que hubo una excepción, un comportamiento inesperado o entradas incorrectas.


Nivel de registro WARN

WARN es un nivel de registro menos grave que ERROR , pero, sin embargo, no debe ignorarse. Los registros WARN se pueden usar para identificar problemas de manera proactiva y evitar que se agraven, ya que indican que algo en su aplicación podría convertirse en un catalizador para un problema más importante.


nivel de registro INFO

El nivel de registro INFO es un tipo de mensaje de registro utilizado en los sistemas de registro para indicar un mensaje informativo general. Por lo general, se usa para registrar eventos esperados de rutina en la aplicación o el sistema, como el inicio de un proceso, la finalización de una tarea o un cambio en el estado del sistema. Estas alertas generalmente se pueden ignorar, ya que están destinadas a confirmar que una aplicación funciona correctamente.


Nivel de registro DEBUG

Normalmente, el nivel de registro DEBUG proporciona información que es estrictamente útil dentro del proceso de depuración. Los registros DEBUG son el tipo de mensaje de registro más detallado y proporcionan una vista granular del funcionamiento interno de una aplicación. El objetivo principal de los registros DEBUG es ayudar a los desarrolladores a comprender qué está haciendo el sistema, identificar errores y problemas, y diagnosticar problemas.

Las 10 mejores bibliotecas de registro de Node.js y cómo empezar a usarlas

#1. pino

Beneficios de Pino

Pino es una herramienta de registro muy popular y establecida desde hace mucho tiempo, con más de 10.9K estrellas Github y millones de descargas en npm. Pino es una biblioteca de registro popular para Node.js porque proporciona varias funciones clave que la hacen adecuada para su uso en aplicaciones de Node.js:


  • Rápido : Pino está diseñado para ser rápido y liviano, con un enfoque en el rendimiento. Utiliza un formato binario para los mensajes de registro, lo que le permite generar resultados de registro de forma rápida y eficiente.

  • Registros estructurados : Pino registra mensajes en formato JSON, lo que permite analizar, filtrar y analizar fácilmente los datos de registro. Esto facilita la búsqueda, la visualización y el análisis de datos de registro y la integración de datos de registro en otros sistemas.

  • Fácil de extender : Pino está diseñado para ser altamente extensible e incluye una serie de complementos integrados que se pueden usar para agregar funciones adicionales, como escribir datos de registro en un archivo o enviar datos de registro a un servidor remoto.

  • Gastos generales bajos : Pino es una biblioteca de registro de Node.js altamente eficiente debido a su utilización mínima de recursos. El proceso de registro con Pino acumula mensajes gradualmente, lo que provoca una aceleración de la aplicación y una disminución en la cantidad de solicitudes por segundo. La limitación es una técnica en la que la función conectada a un evento se activa para ejecutarse solo una vez dentro de un período de tiempo específico, incluso si el evento se activa varias veces.

  • Transportes : Pino ofrece una variedad de opciones para enviar registros, incluida la escritura en archivos, la visualización en la consola y el uso de plataformas como Sentry, Azure Application Insights y CouchDB.


Para usar Pino en una aplicación Node.js, siga estos pasos:

Instalando Pino

Para instalar Pino, simplemente instálelo ejecutando el siguiente comando en un nuevo directorio:

 npm install pino


Importar : en su aplicación Node.js, importe Pino agregando la siguiente línea de código en la parte superior de su archivo:

 const pino = require('pino');

Usando Pino

Inicialización : inicialice Pino creando una instancia de registrador, por ejemplo:

 const logger = pino({ level: 'info' });


Este script produce registros con un nivel de registro de INFO y superior en la consola.


Al establecer el nivel en info, Pino registrará mensajes con un nivel de registro de INFO , WARN , ERROR y FATAL . Los mensajes con un nivel de registro inferior INFO , como DEBUG , no se registrarán.


Este código solo crea una instancia de registrador de Pino con el nivel de registro establecido en INFO. No se generan ni se muestran mensajes de registro hasta que registre algo utilizando la instancia del registrador. Por ejemplo:

 logger.info('This is an info message');

Esto produciría el siguiente resultado en la consola:

 {"level":30,"time":1624825088703,"msg":"This is an info message","pid":1234,"hostname":"my-machine"}


Los datos registrados que se muestran en la consola incluyen el nivel de registro, la marca de tiempo cuando se registró, el mensaje que se registra, un identificador para el registro y el nombre de host.


Registro : también puede usar la instancia logger para registrar otros mensajes en su aplicación. Por ejemplo:

 logger.warn('This is a warning message'); logger.error('This is an error message');


Salida : de forma predeterminada, Pino inicia sesión en la consola. Si desea cambiar la salida, puede usar uno de los transportes disponibles de Pino que mencionamos anteriormente, como escribir en un archivo, enviar registros a un servicio remoto como Sentry o usar Azure Application Insights. Para obtener más información, puede consultar la sección "Transportes conocidos" de Pino.

Instalando Pino bonito

La función de formateador NDJSON pino-pretty básica de Pino es un gran formateador simple para los registros de Pino, y es fácil de configurar. A continuación se explica cómo ponerlo en funcionamiento:


Paso 1 : instale pino-pretty como una dependencia en su proyecto Node.js ejecutando el siguiente comando en su terminal:

 npm install pino-pretty


Paso 2 : importe pino-pretty en su aplicación Node.js agregando la siguiente línea de código en la parte superior de su archivo:

 const pino = require('pino'); const pinoPretty = require('pino-pretty'); const logger = pino({ level: 'info' }); logger.pipe(pinoPretty());


Con estos dos fragmentos de código, instaló pino-pretty y lo configuró para formatear sus registros de Pino. Ahora puede usar la instancia del registrador para registrar mensajes en su aplicación y los registros se mostrarán en un bonito formato legible por humanos en la consola.


Aprenda aún más sobre la depuración con Pino en Cómo depurar Node.js con las mejores herramientas disponibles por @RisingStack

#2. Winston

Beneficios Winston

Con más de 20 000 estrellas en GitHub, Winston es una biblioteca de registro muy popular para Node.js. Winston es una biblioteca de registro única en el ecosistema de Node.js debido a su completo conjunto de funciones y su facilidad de uso. Algunas de las razones por las que Winston se destaca son:


  • Flexible : Winston es altamente personalizable y proporciona una variedad de opciones de registro y mecanismos de transporte que permiten que los registros se escriban en múltiples salidas, como la consola, un archivo o un servidor remoto.
  • Registros que se pueden consultar : Winston proporciona un archivo de registro que se puede consultar, lo que facilita la búsqueda y el análisis de registros.
  • Fácil de usar : Winston tiene una API simple y fácil de usar que facilita el inicio de sesión en una aplicación Node.js. Proporciona un conjunto mínimo de funciones básicas, al mismo tiempo que permite a los desarrolladores ampliar y personalizar la función de registro según sea necesario.
  • Bien documentado : Winston tiene una documentación completa que proporciona información detallada sobre su API e incluye una serie de ejemplos y tutoriales para ayudar a los desarrolladores a comenzar rápida y fácilmente.
  • Impulsado por la comunidad : Winston es un proyecto de código abierto con una comunidad grande y activa de desarrolladores, lo que ayuda a garantizar que la biblioteca esté bien mantenida, libre de errores y actualizada para mantenerse al día con las últimas tendencias y tecnologías.

Instalación de Winston

Para instalar Winston en su proyecto Node.js, puede usar el administrador de paquetes npm ejecutando el siguiente comando en su terminal:

 npm install winston

Usando Winston

Una vez que se completa la instalación, puede importar y usar Winston en su código Node.js al incluir la siguiente línea:

 const winston = require('winston');

Luego puede usar la biblioteca de Winston para configurar y crear sus instancias de registro, por ejemplo:

 const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.Console() ] });

Esto crea una instancia de registrador con un nivel de información y un transporte de consola. Puede usar esta instancia de registrador para registrar mensajes en su aplicación, por ejemplo:

 logger.info('Hello World');

Esto registrará el mensaje Hello World en la consola con el nivel de registro de información.

Registro de niveles en Winston

Winston está equipado con seis niveles de registro predeterminados, organizados de acuerdo con las pautas descritas en el documento RFC5424. A los niveles se les asigna una prioridad numérica, asignándose el número más bajo a la gravedad más alta. Los seis niveles y sus respectivos valores de prioridad son:


 { error: 0, warn: 1, info: 2, http: 3, verbose: 4, debug: 5, silly: 6 }


Para cada uno de los seis niveles de registro, hay un método correspondiente en el objeto registrador:

 logger.error('error'); logger.warn('warn'); logger.info('info'); logger.verbose('verbose'); logger.debug('debug'); logger.silly('silly');


También puede pasar una cadena que represente el nivel de registro al método log():

 logger.log('error', 'error message'); logger.log('info', 'info message');


La propiedad level en el logger dicta qué mensajes de registro se pasarán a los transportes que ha configurado. Por ejemplo, si la propiedad level se establece en info , solo se escribirán las entradas de registro con una gravedad de info o superior y todas las demás perderán prioridad. Esto significa que en la configuración actual, solo se generarán mensajes de registro con niveles de info , warn y error .

#3. Bunyán

beneficios bunyan

Bunyan es una biblioteca de registro única para Node.js debido a su enfoque en hacer que los datos de registro sean más estructurados y legibles (lo logran al serializar registros como objetos JSON en lugar de texto sin formato). He aquí por qué Bunyan tiene 7k estrellas en Github:


  1. Formato JSON : a diferencia de otras bibliotecas de registro, Bunyan registra datos en formato JSON, lo que facilita el análisis y la integración con otras herramientas y plataformas.
  2. Niveles de registro flexibles : Bunyan admite múltiples niveles de registro con opciones flexibles para administrar el nivel y el umbral de gravedad del registro.
  3. Serialización : en Bunyan, existe una característica llamada serialización, donde las funciones convierten un objeto de JavaScript en un objeto representable por JSON. Esto permite que una instancia de registrador específica tenga un serializador que vincule un nombre de campo de registro a una función de serialización.
  4. API fácil de usar : Bunyan proporciona una API simple y fácil de usar para iniciar sesión, lo que la hace accesible para desarrolladores de todos los niveles.
  5. Complementos y transportes : Bunyan admite una variedad de complementos y transportes, como consola, archivo, HTTP y correo electrónico, lo que facilita la personalización de la salida de registro para satisfacer necesidades y requisitos específicos.

Instalación de Bunyan

Para instalar Bunyan, puede ejecutar el siguiente comando en su terminal o símbolo del sistema:

 npm install bunyan


Esto instalará la biblioteca Bunyan y sus dependencias en su proyecto Node.js. Una vez instalada, puede requerir la biblioteca en su código y comenzar a usarla.

Usando Bunyan

Importe Bunyan en su proyecto : en la parte superior de su archivo JavaScript, agregue la siguiente línea:

 const bunyan = require('bunyan');


Cree una instancia de registrador : a continuación, cree una instancia de registrador utilizando el siguiente código:

 const logger = bunyan.createLogger({ name: 'my-app-name', level: 'info' });


En este ejemplo, name es el nombre de su aplicación y nivel especifica el nivel mínimo de registros que desea ver.


Registrar un mensaje : para registrar un mensaje, simplemente llame a uno de los métodos de registro de Bunyan, como información, advertencia o error, y pase el mensaje que desea registrar, así:

 logger.info('This is an info log message'); logger.warn('This is a warn log message'); logger.error('This is an error log message');


Ejecute su código : finalmente, ejecute su código y debería ver los mensajes registrados en la consola.

De manera predeterminada, Bunyan genera registros en formato JSON, lo que facilita la interpretación y el análisis de registros con herramientas de administración de registros. También puede personalizar el formato usando la opción de transmisiones de Bunyan.

#4. morgan

beneficios morgan

Morgan es una biblioteca de registro única para Node.js por varias razones, principalmente su posicionamiento único como middleware. Esto, entre otras razones, lo ha llevado a ser muy popular, con 7.300 estrellas en GitHub en el momento de escribir este artículo. Aquí hay algunas razones por las que Morgan es tan popular:


  1. Basado en middleware : Morgan funciona como middleware en el marco Node.js Express, lo que facilita la integración en las aplicaciones existentes basadas en Express.
  2. Personalizable : Morgan ofrece una amplia gama de opciones de personalización, desde formato de registro hasta tokens personalizados, lo que permite a los desarrolladores adaptar sus registros a sus necesidades específicas.
  3. Basado en flujos : Morgan puede escribir datos de registro en una variedad de flujos de salida, incluida la consola, los archivos o incluso los servidores remotos.
  4. Rápido y liviano : Morgan está diseñado para ser rápido y liviano, lo que lo hace adecuado para aplicaciones de alto tráfico donde el rendimiento es fundamental.
  5. Registro de solicitudes HTTP : Morgan está diseñado específicamente para registrar solicitudes y respuestas HTTP, lo cual es útil para depurar y analizar el rendimiento del servidor web.

Instalación de Morgan

Comience instalando el paquete morgan usando npm:

 npm install morgan

usando morgan

Después de completar el proceso de instalación, debe importar la biblioteca mediante la función "requerir" y luego integrarla en su aplicación Express.js como middleware.


El código para esto se vería así:

 var morgan = require('morgan'); app.use(morgan('dev'));


El argumento "dev" es una opción de formato proporcionada por Morgan. Morgan ofrece cinco formatos de registro diferentes, que incluyen:

  1. tiny tiene una salida minúscula.
  2. short incluye el tiempo de respuesta y abrevia el registro de forma predeterminada.
  3. dev proporciona una salida concisa codificada por colores para su uso durante el desarrollo
  4. common también utiliza la salida de registro combinada de Apache.
  5. combined utiliza la salida de registro combinada estandarizada de Apache.


Puede elegir entre estos formatos usando el argumento apropiado al integrar Morgan en su aplicación, como se muestra a continuación:

 app.use(morgan('combined')); app.use(morgan('common')); app.use(morgan('dev')); app.use(morgan('short')); app.use(morgan('tiny'));

#5. Nivel de registro

Beneficios de nivel de registro

Loglevel es un poco menos popular que algunas de las otras opciones enumeradas aquí, con 2.400 estrellas en Github, pero sigue siendo una biblioteca de registro excelente y liviana. Aquí hay algunas razones por las que loglevel es una biblioteca de registro única para Node.js:


  1. Huella de código mínima : loglevel es una biblioteca muy liviana, lo que la hace ideal para situaciones en las que necesita una cantidad mínima de sobrecarga de código.
  2. Niveles de registro dinámicos : loglevel proporciona niveles de registro dinámicos, lo que le permite cambiar el nivel de registro en tiempo de ejecución, lo que facilita cambiar entre diferentes niveles de detalles de registro sin tener que modificar el código.
  3. API simple : la API de loglevel es simple y proporciona una forma flexible y fácil de usar para registrar mensajes.
  4. Compatibilidad con navegadores : loglevel es compatible tanto con Node.js como con navegadores web, lo que lo convierte en una opción versátil para iniciar sesión en una variedad de entornos.
  5. Compatibilidad multiplataforma : loglevel se basa en log4js, que es una biblioteca de registro ampliamente utilizada, lo que garantiza la compatibilidad entre diferentes plataformas.

Instalación de nivel de registro

Para configurar el nivel de registro, primero debe instalarlo usando npm:

 npm install loglevel

Uso de nivel de registro

Una vez que lo tenga instalado, puede importarlo en su proyecto Node.js y comenzar a usarlo configurando el nivel de registro:


 const log = require('loglevel'); log.setLevel(log.levels.ERROR);


Al establecer el nivel de registro en ERROR, está especificando que solo se registrarán los mensajes de registro con un nivel de gravedad de ERROR . Después de configurar el nivel de registro, puede usar los siguientes métodos para registrar mensajes en diferentes niveles:


 log.trace('This is a trace message'); log.debug('This is a debug message'); log.info('This is an info message'); log.warn('This is a warning message'); log.error('This is an error message');


El nivel de registro que establezca determinará qué mensajes se registrarán y cuáles se ignorarán. Por ejemplo, si el nivel de registro se establece en información, solo se mostrarán los mensajes registrados mediante log.info y log.warn o log.error.

#6. log4js

Beneficios de log4js

Por supuesto, no podríamos mencionar loglevel sin mencionar también a su hermano mayor, Log4js. Log4js es una biblioteca de registro de JavaScript que se inició como un puerto de la popular biblioteca de registro de Java Log4j. Fue creado para proporcionar una solución de registro similar para aplicaciones de JavaScript y desde entonces ha evolucionado para proporcionar funciones y capacidades de registro avanzadas. Con más de 5600 estrellas en Github, estas son algunas de las razones por las que Log4js es tan popular:


  • Flexibilidad en la configuración : Log4js ofrece una gama de opciones para el registro, incluidos niveles de registro, diferentes tipos de agregadores (por ejemplo, consola, archivo, red) y la capacidad de especificar diferentes configuraciones de registro para diferentes partes de la aplicación.
  • Anexadores personalizados : Log4js admite la creación de anexadores personalizados, lo que permite a los desarrolladores ampliar la biblioteca para cumplir con sus requisitos de registro específicos.
  • Compatibilidad con contexto de registro : Log4js permite a los desarrolladores asociar mensajes de registro con información contextual adicional, como los datos de solicitud del usuario, para que los mensajes de registro sean más útiles para la depuración.
  • Configuración de nivel de registro dinámico : Log4js admite cambiar el nivel de registro en tiempo de ejecución, lo que facilita la administración del registro en un entorno de producción.
  • Integración con otras herramientas : Log4js tiene soporte incorporado para herramientas populares, como Logstash y Graylog, lo que facilita la integración del registro en un flujo de trabajo de análisis y monitoreo de aplicaciones más amplio.

Instalación de Log4js

Para instalar Log4js, puede usar el administrador de paquetes npm ejecutando el siguiente comando en su terminal:


 npm install log4js


Esto instalará la última versión de Log4js y sus dependencias. Luego puede requerir la biblioteca en su aplicación Node.js y comenzar a usarla para registrar mensajes.

Usando Log4js

Para comenzar a usar Log4js, primero solicítelo en su código y configúrelo:

 const log4js = require('log4js'); log4js.configure({ appenders: { console: { type: 'console' } }, categories: { default: { appenders: ['console'], level: 'info' } } }); const logger = log4js.getLogger();


Luego puede usar el registrador para registrar mensajes en diferentes niveles:

 logger.trace('Entering cheese testing'); logger.debug('Got cheese.'); logger.info('Cheese is Gouda.'); logger.warn('Cheese is quite smelly.'); logger.error('Cheese is too ripe!'); logger.fatal('Cheese was breeding ground for listeria.');


Aquí hay un ejemplo del uso de Log4js para registrar mensajes en múltiples agregadores (consola y archivo) con diferentes niveles de registro:

 const log4js = require('log4js'); log4js.configure({ appenders: { console: { type: 'console' }, file: { type: 'file', filename: 'app.log' } }, categories: { default: { appenders: ['console'], level: 'info' }, file: { appenders: ['file'], level: 'error' } } }); const logger = log4js.getLogger(); const fileLogger = log4js.getLogger('file'); logger.info('This is an informational message'); fileLogger.error('This is an error message');


En este ejemplo, el registrador con la categoría "predeterminada" está configurado para registrar mensajes con información de nivel o superior en la consola. El registrador con la categoría "archivo" está configurado para registrar mensajes con nivel de error o superior en el archivo. Los dos registradores se pueden usar indistintamente para registrar mensajes en sus respectivos anexadores.

#7. Npmlog

Beneficios de Npmlog

El valor único de npmlog radica en su simplicidad y mínima sobrecarga, lo que lo hace ideal para su uso en proyectos de pequeña escala o sensibles al rendimiento. Es fácil de configurar y se integra a la perfección con el ecosistema npm (lo que no sorprende dado que es la utilidad de registro oficial de npm), lo que lo convierte en una opción popular para los desarrolladores que buscan una solución de registro liviana. Aquí hay algunas razones por las que npmlog está en la lista:


  1. Ligero : npmlog tiene una base de código pequeña y una sobrecarga mínima, lo que lo hace ideal para proyectos de pequeña escala o sensibles al rendimiento.
  2. Fácil integración con npm : npmlog está diseñado específicamente para su uso dentro del ecosistema npm, lo que facilita la integración con otros paquetes y herramientas de npm.
  3. Personalizable : npmlog le permite personalizar el nivel de registro, la secuencia y el prefijo, lo que le brinda control total sobre cómo se generan y muestran sus registros.
  4. Versátil : npmlog es adecuado para una amplia gama de proyectos, desde pequeños scripts hasta grandes aplicaciones, lo que lo convierte en una herramienta de registro versátil y flexible.
  5. Fácil de usar : npmlog tiene una API sencilla y requiere una configuración mínima, por lo que es rápido y fácil comenzar a iniciar sesión en su proyecto Node.js.

Instalación de Npmlog

Para instalar npmlog, debe tener Node.js y npm (Node Package Manager) instalados en su máquina. Luego, puede ejecutar el siguiente comando en su terminal o símbolo del sistema:

 npm install npmlog


Esto descargará e instalará la última versión de npmlog y sus dependencias, permitiéndole usarla en su proyecto Node.js.

Uso de Npmlog

Aquí hay un ejemplo de cómo usar npmlog en un proyecto de Node.js:

 const log = require('npmlog'); log.level = 'verbose'; log.verbose('This is a verbose message'); log.info('This is an informational message'); log.warn('This is a warning'); log.error('This is an error');


En este ejemplo, comenzamos solicitando el módulo npmlog y asignándolo a una variable. Luego, establecemos el nivel de registro en verbose , lo que significa que se mostrarán los mensajes con un nivel de registro de verbose , info , warn y error . Luego, registramos mensajes en diferentes niveles usando los métodos verbose , info , warn y error .


Tenga en cuenta que, de forma predeterminada, npmlog escribe en process.stderr . Si necesita escribir en process.stdout , puede usar la propiedad log.stream .

#8. Rugido

Beneficios rugidos

La biblioteca roarr es una herramienta de registro de Node.js que está diseñada para producir datos estructurados sin necesidad de inicialización. Cuenta con una interfaz de línea de comandos (CLI) y admite variables ambientales, lo que lo hace versátil y fácil de usar. Además, roarr es compatible con entornos de navegador y Node.js, lo que lo convierte en una solución de registro versátil para una amplia gama de aplicaciones.


Aquí hay algunos puntos clave que resaltan el valor único de la biblioteca roarr:


  1. Registro estructurado : la biblioteca produce registros en un formato estructurado, lo que facilita el procesamiento y el análisis de registros mediante herramientas legibles por máquina.
  2. Metadatos enriquecidos : roarr proporciona un conjunto completo de metadatos, como información de solicitud y respuesta, que se puede utilizar para diagnosticar problemas y mejorar la calidad general de sus registros.
  3. Legibles por humanos : a pesar de su formato estructurado, los registros de roarr también están diseñados para ser legibles por humanos, lo que facilita la comprensión del contexto y el contenido de sus registros.
  4. Fácil de usar : la biblioteca proporciona una API simple e intuitiva para iniciar sesión, sin complejidad innecesaria.
  5. Personalizable : la biblioteca roarr le permite personalizar la apariencia y el contenido de sus registros, incluidas las opciones para personalizar el nivel de registro, la transmisión y los metadatos.

Instalación de Roarr

Primero, instale roarr usando npm:

 npm install roarr

usando rugido

A continuación, importe roarr en su código y cree un registrador:

 const Roarr = require('roarr').default; const logger = new Roarr({ context: { service: 'my-service' } });

Registre mensajes utilizando el método log :

 logger.info('Hello, world!');

De forma predeterminada, los registros de roarr se enviarán a la consola. Puede personalizar la salida del registro especificando una secuencia diferente, como un archivo, usando la opción stream :

 const Roarr = require('roarr').default; const fs = require('fs'); const logger = new Roarr({ context: { service: 'my-service' }, stream: fs.createWriteStream('./my-service.log') });

Este es solo un ejemplo básico de cómo usar roarr. Hay muchas más opciones y funciones disponibles, así que asegúrese de consultar la documentación oficial de roarr para obtener más información.

#9. Trazador

Beneficios del rastreador

Tracer es una biblioteca de registro de código abierto para aplicaciones de Node.js, desarrollada por la comunidad de Node.js. Está diseñado para proporcionar una forma eficiente y flexible de registrar mensajes e información de depuración en aplicaciones Node.js. Tracer ha sido mantenido y desarrollado activamente por un equipo de voluntarios y está disponible para que cualquiera lo use y contribuya en Github. Estas son algunas de las características que la convierten en una biblioteca de registro única:


  1. Registro asíncrono : Tracer utiliza el registro asíncrono, lo que significa que los registros no bloquean la ejecución del programa.
  2. Registro estructurado : Tracer proporciona un registro estructurado, lo que significa que los registros se organizan en pares clave-valor, lo que facilita la búsqueda, el análisis y la visualización de datos de registro.
  3. Salida personalizable : Tracer proporciona un formato de salida personalizable, lo que permite a los desarrolladores elegir el formato y el destino de sus registros, incluida la consola, el archivo o los servicios basados en la nube como AWS CloudWatch.
  4. Contexto de registro enriquecido : Tracer proporciona un contexto de registro enriquecido, incluida la capacidad de adjuntar metadatos, como ID de solicitud, ID de usuario y otra información a los registros.
  5. Compatibilidad con middleware : Tracer brinda compatibilidad con middleware, lo que permite a los desarrolladores agregar fácilmente registros a sus aplicaciones Express.js o Koa.js.

Instalación de rastreador

Tracer se puede instalar mediante el administrador de paquetes de nodos (npm). Estos son los pasos para instalar Tracer:


  1. Abra su terminal o símbolo del sistema
  2. Cambie su directorio actual a su directorio de proyecto Node.js
  3. Ejecute el siguiente comando para instalar Tracer:


 npm install tracer


Esto instalará Tracer como una dependencia en su proyecto. Luego puede solicitarlo en su código y comenzar a usarlo para registrar mensajes.

Usando el rastreador

Aquí hay un ejemplo de cómo usar Tracer en su código:


 const tracer = require('tracer'); const logger = tracer.console(); logger.info('Starting the application...');


En este ejemplo, primero necesitamos la biblioteca Tracer, luego creamos un registrador de consola usando el método tracer.console() . Finalmente, registramos un mensaje informativo usando el método info en el objeto registrador.


Aquí hay otro ejemplo del uso de Tracer:

 const tracer = require('tracer'); const logger = tracer.dailyfile({root: './logs', maxLogFiles: 10}); logger.error('An error has occurred:', new Error('Something went wrong'));


En este ejemplo, usamos el método tracer.dailyfile para crear un registrador de archivos que escribe registros en un archivo rotativo diario. La opción root especifica el directorio donde se almacenarán los archivos de registro y la opción maxLogFiles limita la cantidad de archivos de registro que se guardarán.


Finalmente, registramos un mensaje de error usando el método error en el objeto registrador, junto con un objeto de error, brindando más información sobre el error que ocurrió.

#10. señal

Beneficios de la señal

Su página de Github se jacta de ser "hackeable y configurable hasta el núcleo", y eso es una parte importante de lo que hace de Signale una biblioteca de registro tan querida en la comunidad de Node.js. La biblioteca se creó como una solución para las dificultades que enfrentan los desarrolladores cuando intentan registrar mensajes en aplicaciones Node.js, como registros desordenados y difíciles de leer. Esto es lo que lo hace destacar del resto:


  1. Salidas de registro personalizables : Signale ofrece una variedad de salidas de registro personalizables, lo que permite a los desarrolladores elegir la salida que mejor se adapte a sus necesidades, desde salidas de consola simples hasta salidas más avanzadas como JSON y Logfmt.
  2. API intuitiva : Signale tiene una API simple e intuitiva, lo que facilita el uso y la comprensión de los desarrolladores, incluso para aquellos que son nuevos en el registro.
  3. Salida con estilo : Signale proporciona salidas con estilo, lo que hace que los registros sean más legibles y visualmente atractivos, lo que facilita la identificación rápida de mensajes de registro importantes.
  4. Contexto de registro enriquecido : Signale proporciona un contexto de registro enriquecido, como marcas de tiempo y niveles de registro, lo que facilita el análisis y la comprensión de los registros.
  5. Comunidad activa : Signale tiene una comunidad grande y activa de desarrolladores y colaboradores, lo que garantiza que la biblioteca esté bien mantenida y actualizada con las últimas tecnologías y mejores prácticas.

Instalación de Signale

Para instalar Signale, puede usar npm, el administrador de paquetes de Node.js, ejecutando el siguiente comando en su terminal:

 npm install signale


Alternativamente, también puede usar yarn para instalar Signale ejecutando el siguiente comando en su terminal:

 yarn add signale


Una vez instalado, puede importar Signale a su aplicación Node.js y comenzar a usarlo para registrar mensajes e información de depuración.

Uso de Signale

Aquí hay un ejemplo de cómo importar Signale a su aplicación Node.js y usarlo para registrar mensajes:


 const signale = require('signale'); // Log an info message signale.info('Starting up the server'); // Log a success message signale.success('Server started successfully'); // Log a warning message signale.warn('Low memory warning'); // Log an error message signale.error(new Error('An error occurred while processing data'));


En este ejemplo, importamos Signale a nuestra aplicación Node.js usando la función require . Luego, usamos los diversos métodos de registro proporcionados por Signale, como info , success , warn y error , para registrar diferentes tipos de mensajes. Cada uno de estos métodos tiene un símbolo y un color distintivos, lo que facilita la identificación rápida del tipo de mensaje de registro.


Puede encontrar más información sobre cómo usar Signale, incluidos métodos de registro adicionales y opciones de personalización, en la documentación de Signale .


Optimice su proceso de depuración con las bibliotecas de registros de Node.js

¿Está buscando un método rápido y eficiente para depurar sus aplicaciones Node.js? Consulte una o más de las bibliotecas mencionadas en este artículo, cada una de ellas es una excelente opción. Pino, sin embargo, es nuestra biblioteca de registro personal preferida por lo que vale 😉


Estas bibliotecas de registro han demostrado ser cruciales al depurar aplicaciones Node.js tanto en entornos de prueba/desarrollo como en producción.


Además, al integrarlos con una solución de monitoreo como PlayerZero, puede obtener aún más información sobre el rendimiento de sus aplicaciones Node.js.


¡Reserve una demostración para obtener más información sobre cómo PlayerZero puede ayudarlo a optimizar el rendimiento de su aplicación backend hoy!


También publicado aquí .