Módulo logs
Creación, búsqueda y listado de logs, el guardado de logs se puede escoger entre base de datos o sistema de archivos:
- Logs en base de datos (por defecto): Registra los logs en una tabla con Sequelize, Postgresql y GraphQL.
- Logs en sistema de archivos: Registra los logs en un archivo del sistema de archivos.
- Logs en consola: Manda los logs también a la salida estándar (stdout) y cuando son de nivel
error
los manda a stderr.
Maneja tres niveles de logs: info, warning, error
.
LICENCIA: MIT License (Omar Gutiérrez C.)
Requisitos
- Nodejs 7.6 en adelante
Modo de uso
# Instalando libreríanpm install app-logs --save
Instanciando el módulo logs en un proyecto, primero hay que definir un objeto de configuración:
const Logs = ;// en caso de usar logs en el sistema de archivos se usa:const config =logsConfig:// indica que los logs se guardan en el sistema de archivos// posibles: 'filesystem', 'database'storage: 'filesystem'// para mostrar los logs también en la consola (stdout) esto debería ser true// Cuando se loguea con nivel 'error' el log va a stderr en lugar de stdoutconsole: false// directorio con los logsoutputDirectory: './logs'// nombre de archivo de logsoutputFilename: 'logs.log'// formato de logs, con algunas de las opciones de winston (combined, interpolation, json)format: 'combined'// nivel de logs por defecto, posibles: error, info, warning. (info por defecto)level: 'info';// en caso de usar logs en base de datos bastaría:const config =database: 'postgres'username: 'postgres'password: 'postgres'host: 'localhost';
Luego iniciar el módulo.
const logs = await ;
Uso
// Message errorawait logs; // Message infoawait logs; // Message warningawait logs; // Pasando el nivel de logs manualmente se pueden agregar detalles: // - Mensaje: String - Texto del mensaje// - Nivel de logs: String solo con los valores "info", "warn" o "error"// - tipo: String - Tipo de log (sirve para hacer búsquedas)// - Referencia: String - Mas detalle del mensaje (sirve para hacer búsquedas)// - Usuario: String - Guardar con el nombre de un usuario// - Ip: String - Dirección ipawait logs;await logs;await logs; // guardara usando el nivel de logs por defecto y las demás opciones vacíasawait logs; // logs.[info|error|warning](mensaje, tipo, referencia, usuario, ip)// todos los parámetros son opcionales menos 'mensaje', ej.logs;logs
Ver más ejemplos de uso en tests.
Consultar logs:
// Lista completa de logs, puede recibir parámetros de búsqueda entre otras opcioneslet list = await logs; // Lista de logs por nivel 'info'list = await logs; // Lista de logs por dirección ip 127.0.0.1list = await logs;
Ver más ejemplos de uso en tests/.
Ejecutando indivualmente
Siga los siguientes pasos:
# 1. Instalar dependenciasnpm install# 2. Correr test de prueba, configurar la variable config con la conexión de la base de datos# en el archivo src/util.jsnpm test