9 bibliotecas de registro de Node.js que puede probar para un mejor registro
¿Tienes problemas para depurar tu código? ¿Está buscando algunas soluciones de registro que puedan facilitar la depuración? Siga leyendo para obtener más información.
El desarrollo de software pasa por varias fases: recopilación de requisitos, análisis, codificación, pruebas y mantenimiento. De todas estas fases, la fase de codificación/desarrollo requiere mucho tiempo y effort. Los ingenieros de software se ocupan de errores de sintaxis, errores lógicos y errores de tiempo de ejecución. Los errores sintácticos se identifican en el momento de la compilación y ocurren debido a que el código no cumple con las reglas de un lenguaje de programación.

Por otro lado, los errores lógicos y de tiempo de ejecución no pueden ser identificados por el Integr.ated Development Environment (IDE) y, a menudo, son difíciles de depurar y corregir. Resolver errores requiere mucho tiempo process y requiere mucha depuración.
La depuración es una process en el que se intenta comprender por qué el código escrito no funciona como se esperaba. Es fácil resolver el problema cuando conocemos el error y las líneas exactas del código donde ocurre. Por lo tanto, el registro es muy útil para depurar código.
¿Qué es el registro?
El registro es una técnica en la que se capturan mensajes durante la ejecución de un programa. Uno tiene que registrar solo esos mensajes, lo que podría ayudarlos en la depuración. Entonces, saber cuándo agregar log stateLos comentarios al código son extremadamente importantes. Además, diferenciando entre log statementos es equally básico. Hay varios niveles de registro, como información, advertencia, error, depuración y detallado. Error y advertenciaateLos elementos se utilizan para manejo de excepciones.

Los datos que se devuelven de funciones, los resultados después de la manipulación de matrices, los datos recuperados de API, etc., son algunos ejemplos de datos que se pueden registrar usando info st.atementos. Los registros de depuración y detallados se utilizan para brindar información detallada. descriptión de los errores.
El registro de depuración brinda información sobre el seguimiento de la pila, los parámetros de entrada y salida, etc. "Detallado" no es tan detallado como el registro de "depuración", pero proporciona una lista de todos los eventos que han ocurrido. Los registros se escriben en la consola, los archivos y el flujo de salida. Las herramientas de gestión de registros se pueden utilizar para el registro estructurado y formateado.
Registro de Node.js
Nodejs es un entorno de ejecución de JavaScript. Las aplicaciones Node.js son unasyncronosos y sin bloqueo, y se utilizan en sistemas con uso intensivo de datos y en tiempo real. La mejor manera de aprender más sobre Node.js es consultar los tutoriales de Node.js y sus documentación. Es necesario iniciar sesión para mejorar el rendimiento, la solución de problemas y el seguimiento de errores. El inicio de sesión en Node.js se puede realizar mediante la función incorporada console.log. Además, la función de depuración está interconectada con múltiples paquetes y se puede usar de manera efectiva.
El middleware se utiliza para gestionar solicitudes y respuestas. El middleware podría ser una aplicación o cualquier otro marco de Javascript. El inicio de sesión en el middleware se puede realizar a través de aplicaciones y enrutadores. Cualquier registrador de Node.js debe usar el comando npm o yarn install para instalar los registradores.
Npm significa "Administrador de paquetes de nodos" e YARN significa "Otro negociador de recursos". Sin embargo, se prefiere Yarn a npm, ya que es más rápido e instala los paquetes en forma paralela.

Algunos de los mejores registradores de Node.js se enumeran a continuación:
Pino
Pino es una biblioteca que es uno de los mejores registradores para aplicaciones Node.js. Es de código abierto, extremadamente rápido y registra los st.atecomentarios en un formato JSON fácil de leer. Algunos de los niveles de registro de Pino son: mensajes de depuración, advertencia, error e información. Se puede importar una instancia de Pino logger al proyecto y el archivo console.log stateLos elementos deben reemplazarse con logger.info st.atementos.
Use el siguiente comando para instalar Pino:
$ npm install pino
El genero de registrosated son elaboradosate y en formato JSON, resaltando el número de línea del registro, el tipo de registro, la hora en la que se registró, etc. Pino genera una sobrecarga mínima de registro en una aplicación y es extremadamente flexible a la vez. processregistros de registro.
Pino puede ser integrated con frameworks web como Hapi, Restify, Express, etc. Generación de registrosated by Pino también se puede almacenar en archivos. Utiliza subprocesos de trabajo para su funcionamiento y es compatible con TypeScript.
Winston
Winston admite el registro para varios marcos web con su enfoque principal en la flexibilidad y la extensibilidad. Admite múltiples tipos de transporte y puede almacenar registros en varias ubicaciones de archivos. Los transportes son lugares donde se almacenan los mensajes de registro.
Junto con algunos transportes integrados como Http, Console, File y Stream, admite otros transportes como Cloud Watch y MongoDB. Realiza registros en varios niveles y formatos. Niveles de registro indicadosate la gravedad del problema.
Los distintos niveles de registro son los que se muestran a continuación:
{
error: 0,
warn: 1,
info: 2,
http: 3,
verbose: 4,
debug: 5,
silly: 6
}
El formato de salida del registro también se puede personalizar, filtrar y combinar. Los registros incluyen información sobre la marca de tiempo, etiquetas asociadasated con un registro, milisegundos transcurridos desde el prevregistro ioso, etc.
Winston también maneja excepciones y promesas no cumplidas. Proporciona funciones adicionales como archivo de tiempo de ejecución de consultas, registros de transmisión, etc. En primer lugar, es necesario instalar Winston. Luego, se crea un objeto de configuración de Winston, junto con el transporte.ated para almacenar el registro. Un objeto registrador es created usando el createfunción Logger() y se le pasa el mensaje de registro.
Nodo-Bunyan
Bunyán se utiliza para iniciar sesión rápidamente en node.js en formato JSON. También proporciona una herramienta CLI (Interfaz de línea de comando) para ver los registros. Es liviano y admite varios entornos de ejecución como Node.js, Browserify, WebPack y NW.js. El formato JSON de los registros se embellece aún más utilizando la bonita función de impresión. Los registros tienen varios niveles como fatal, error, advertencia, información, depuración y seguimiento; cada uno es asociadoated con un valor numérico.

Se registran todos los niveles por encima del nivel establecido para la instancia. Bunyan stream es un lugar donde se registran las salidas. Los subcomponentes de una aplicación se pueden registrar mediante la función log.child(). Todos los registradores secundarios están vinculados a una aplicación principal específica. El tipo de flujo podría ser un archivo, un archivo giratorio, datos sin procesar, etc. A continuación se muestra el ejemplo de código para definir un flujo:
var bunyan = require('bunyan');
var log = bunyan.createLogger({
name: "foo",
streams: [
{
stream: process.stderr,
level: "debug"
},
...
]
});
Bunyan también admite el registro de DTrace. Las sondas involucradas en el registro de DTrace incluyen log-trace, log-warn, log-error, log-info, log-debug y log-fatal. Bunyan usa serializadores para producir los registros en formato JSON. Las funciones del serializador no lanzan excepciones y son defensivas.
Nivel de registro
Nivel de registro se utiliza para iniciar sesión en aplicaciones Javascript. También es uno de los mejores registradores de Node.js, ya que es liviano y simple. Registra el nivel dado y utiliza un solo archivo sin dependencias para el registro. El nivel de registro predeterminado es "advertir". Las salidas de registro están bien formateadas junto con los números de línea. Algunos métodos utilizados para el registro son seguimiento, depuración, advertencia, error e información.
Son resistentes al fracaso en cualquier entorno. getLogger() es el método utilizado para recuperar el objeto registrador. También se puede combinar con otros complementos para ampliar sus funciones. Algunos de los complementos incluyen loglevel-plugin-prefix, loglevel-plugin-remote, ServerSend y DEBUG. El complemento para agregar mensajes de prefijo al registro se muestra a continuación:
var originalFactory = log.methodFactory;
log.methodFactory = function (methodName, logLevel, loggerName) {
var rawMethod = originalFactory(methodName, logLevel, loggerName);
return function (message) {
rawMethod("Newsflash: " + message);
};
};
log.setLevel(log.getLevel()); // Be sure to call setLevel method in order to apply plugin
Las compilaciones se ejecutan con el comando npm run dist y las pruebas se pueden ejecutar con el comando npm test. El nivel de registro es compatible con los paquetes Webjar, Bower y Atmosphere. Se lanza una nueva versión de Loglevel cada vez que se agregan nuevas funciones.
Signale
Signale consta de 19 registradores para aplicaciones Javascript. Admite TypeScript y registro de ámbito. Consta de temporizadores que ayudan a registrar la marca de tiempo, los datos y el nombre del archivo. Además de los 19 registradores como await, complete, fatal, fav, info, etc., se pueden crearate registros personalizados.
Los registros personalizados son created definiendo un objeto JSON y campos con los datos del registrador. Los registradores interactivos también se pueden crearated. Cuando un registrador interactivo se establece en verdadero, los nuevos valores de los registradores interactivos anulan los antiguos.

La mejor parte de Signale es la capacidad de filtrar información secreta o confidencial. Varios secretos se almacenan en una matriz. addSecrets() y clearSecrets() son las funciones utilizadas para agregar y borrar los secretos de la matriz. Boostnote, Docz, Shower, Taskbook y Vant usan Signale para iniciar sesión. La sintaxis para llamar a las API desde Signale es la siguiente:
signale.<logger>(message[,message]|messageObj|errorObj)
El número de descargas de Signale supera el millón al momento de escribir este artículo.
Trazador
Trazador se utiliza para producir mensajes de registro detallados. Los mensajes de registro consisten en marcas de tiempo, nombres de archivos, números de línea y nombres de métodos. Se pueden instalar paquetes auxiliares para personalizar el formato de registro de salida. Los paquetes auxiliares se pueden instalar con el siguiente comando.
npm install -dev tracer
Tracer admite el transporte de archivos, transmisiones y MongoDB. Admite consola de color y condiciones de filtro en el registro. Iniciarally, el rastreador debe instalarse mediante npm install. En segundo lugar, se debe crear un objeto registrador.ated, y se debe seleccionar el tipo de consola. Luego, se pueden especificar los distintos niveles o tipos de registro sobre el objeto para realizar más registros.
Se pueden crear filtros personalizados.ated definiendo syncfunciones cronosas con la lógica de negocios presente en el cuerpo de la función. microtemplatEs como tinytim también se puede utilizar para el registro del sistema.
Cabaña.js
Cabina se utiliza para el registro del lado del servidor y del cliente de las aplicaciones node.js. Se utiliza cuando se requiere el enmascaramiento de información sensible y crítica. Esto incluye números de tarjetas de crédito, encabezados BasicAuth, salts, contraseñas, tokens CSRF y números de cuentas bancarias. El fragmento de código siguiente muestra el registro mediante Cabin.js.
const Cabin = require('cabin');
const cabin = new Cabin();
cabin.info('hello world');
cabin.error(new Error('oops!'));
Consta de más de 1600 nombres de campos. También sigue el principio de Bring Your Own Logger (BYOL). Esto lo hace compatible con varios otros registradores como Axe, Pino, Bunyan, Winston, etc. Reduce los costos de almacenamiento en discos debido al flujo automático y la cabina. buffers. Es cruzadoplatformulario compatible y fácil de depurar.
El registro del lado del servidor requiere el uso de middleware para el enrutamiento y el registro automático de salida. BrowsEl registro del lado externo requiere solicitudes y scripts XHR. Utiliza Ax que muestra metadatos, es decir, datos sobre datos, seguimientos de pila y otros errores. SHOW_STACK y SHOW_META son variables booleanas configuradas en verdadero o falso para mostrar u ocultar seguimientos de pila y metadatos.
npmlog
npmlog es un tipo básico de registrador que utiliza npm. Algunos de los métodos de registro utilizados son nivel, registro, maxRecordSize, prefixStyle, header y stream. También es compatible con el registro de color. Los distintos niveles de registro son tonto, detallado, información, advertencia, http y error. A continuación, se muestra un fragmento de código de muestra para usar el registro npm.
var log = require('npmlog')
// additional stuff ---------------------------+
// message ----------+ |
// prefix ----+ | |
// level -+ | | |
// v v v v
log.info('fyi', 'I have a kitty cat: %j', myKittyCat)
Todos los mensajes se suprimen si se especifica "Infinito" como nivel de registro. Si se especifica "-Infinito" como nivel de registro, la opción para ver los mensajes de registro debe estar habilitada para ver los registros.
Los objetos de eventos y mensajes se utilizan para el registro. Los mensajes de prefijo se emiten cuando se utilizan eventos de prefijo. Los objetos de estilo se utilizan para formatear los registros, como agregar color al texto y al fondo, estilos de fuente como negrita, cursiva, subrayado, etc. Algunos paquetes de registros de npm son brolog, npmlogger, npmdate registro, etc
Rugido
Rugido es un registrador para Node.js que no requiere inicialización y produce datos estructurados. Tiene CLI y variables ambientales. Es Browser compatible. puede ser integralated con Fastify, Fastify, Elastic Search, etc. Puede distinguir entre código de aplicación y código de dependencia. Cada mensaje de registro consta de un contexto, mensaje, secuencia, hora y versión. Varios niveles de registro incluyen seguimiento, depuración, información, advertencia, error y fatal. Un fragmento de código de muestra sobre cómo se realiza el registro en Roarr es el siguiente:
import {
ROARR,
} from 'roarr';
ROARR.write = (message) => {
console.log(JSON.parse(message));
};
Además, se puede realizar la serialización de errores, lo que significa que la instancia con el error se puede registrar junto con el contexto del objeto. Algunas de las variables de entorno que son específicas de Node.js y Roarr son ROARR_LOG y ROARR_STREAM. "adoptar" es una función que se usa con node.js para pasar las propiedades de contexto a varios niveles. Las funciones secundarias también se pueden usar con middleware durante el registro.
Palabras finales
El registro es un método para realizar un seguimiento de diversas actividades y eventos durante la ejecución de un programa. El registro juega un papel vital en la depuración de código. También ayuda a aumentar la legibilidad del código. Node.js es un entorno de ejecución de JavaScript de código abierto. Algunos de los mejores registradores de Node.js son Pino, Winston, Bunyan, Signale, Tracer, Npmlog, etc. Cada tipo de registrador tiene sus propias características como profiLing, filtrado, streaming y transporte.
Algunos registradores admiten consolas de colores y otros son adecuados para manejar información confidencial. Los registros detallados y formateados son los que más ayudan a los desarrolladores mientras intentan corregir errores en su código. El formato JSON es genérico.ally Se prefiere para el registro porque registra datos en forma de pares clave-valor, lo que lo hace fácil de usar.
Los registradores también pueden integrarseated con otras aplicaciones y son multi-browser compatible. Siempre es aconsejablesable para analizar las necesidades y aplicaciones que está creando antes de elegir el tipo de registrador que desea utilizar.
También puede ver cómo instalar Node.js y NPM on Windowsy macOS.