@red-unica/libreria-bitacoras
Implementación de archivos logs para las aplicaciónes NodeJS de middleware para todo Red Única.
Instalación
npm install --save @red-unica/libreria-bitacoras express-async-errors
Configuración
Dentro del archivo pincipal de la aplicación Express
/* Libreria para poder cachar errores inesperados */
require("express-async-errors");
const express = require("express");
const app = express();
const bitacora = require("@red-unica/libreria-bitacoras");
bitacora.configurar(app);
...
...
...
/* Esta función se encarga de interceptar cualquier error 'inesperado' que podría tirar el servidor */
app.use(function (err, req, res, next) {
bitacora.escribir('error', err.message);
next(err); // Esto se tiene que cambiar para mandar una respuesta generica de error al cliente
});
const server = app.listen(process.env.EXPRESS_APP_SERVER_PORT, () => {
bitacora.escribir('info', `App ms-example levantada en el puerto ${process.env.EXPRESS_APP_SERVER_PORT}!`);
});
/* Proceso para detener la applicacion correctamente */
const apagar = async () => {
bitacora.escribir('info', 'Apagando aplicacion...');
await server.close();
await bitacora.apagar();
process.exit(0);
};
process.on('exit', apagar);
process.on('SIGTERM', apagar);
process.on('SIGINT', apagar);
Uso
Dentro de cualquier JS del proyecto
const bitacora = require("@red-unica/libreria-bitacoras");
bitacora.escribir('trace','Mensaje de tipo trace');
bitacora.escribir('debug','Mensaje de tipo debug');
bitacora.escribir('info','Mensaje de tipo info');
bitacora.escribir('warn','Mensaje de tipo warn');
bitacora.escribir('error','Mensaje de tipo error');
bitacora.escribir('fatal','Mensaje de tipo fatal');
Para mandar a imprimir tiempo de ejecución (El calculo del tiempo se debe realizar por uno mismo):
const tiempoInicial = new Date();
/* Ejecución de proceso X */
const tiempoFinal = new Date();
const tiempoEjecucion = tiempoFinal.getTime() - tiempoInicial.getTime();
bitacora.escribirTiempoEjecucion('info','Fin del proceso X',tiempoEjecucion);
Variables de entorno
Para el correcto funcionamiento de la librería es necesario definir las siguientes variables de entorno:
Variable | Descripción | Ejemplo | Valor por default |
---|---|---|---|
EXPRESS_APP_ARCHIVO_BITACORA | Nombre y ruta del archivo log a generar | /var/log/ficha-cliente/ficha-cliente.log | server.log |
License
ISC ©