0.0.1 • Published 3 years ago

tgv-logger v0.0.1

Weekly downloads
6
License
-
Repository
-
Last release
3 years ago

BrowserLogger

Esta es una librería compartida, con funciones pensadas para registrar/comunicar distintos eventos y acciones en base a ellos. Funciones implementadas: trace: propuesto para trazabilidad de la navegación del usuario mssge: propuesto para comunicación con el usuario (e interacción) debug: propuesto para identificar estados de sesión ante errores error: propuesto para administrar errores, guardar en server-side fatal: propuesto para informar errores críticos al administrador

Estas funciones no son niveles escalables (1 a 5) como en otros loggers, sino que son independientes y sirven a distintos propósitos. La idea es que estén presentes en el sistema, y según la necesidad (ambiente, usuario) se puedan activar individualmente, registrando/informando mediante distintos publishers. Cada uno puede implementar distintos repositorios de almacenamiento (API Rest, console, LocalStorage, App Insights) o de comunicación con el usuario (notification SW, mail, bandeja, popup) dependiendo de quién deba verlos o cómo se quiera interactuar. Publicadores propuestos: console: propuesto para eventos locales, que caducan con la sesión (para debug por ej.) LocalStorage: propuesto para eventos locales de mayor permanencia (o en SesionStorage) API Rest: propuesto para eventos persistidos en el servidor (log de errores o trace) mailto: propuesto para notificar a una casilla de administración los errores críticos notification: propuesto para interactuar con el usuario (API Notification si tiene SW) La librería es extensible a otras funciones según la necesidad de la aplicación, pudiendo implementarse otros medios de publicación a partir del publisher abstact. Consta de los siguientes archivos: log-publishers.ts: es una clase abstracta con 2 propiedades y 2 métodos púbicos: location: donde registra los eventos (una URL u otro tipo de dirección) functions: lista de los eventos que loguean en él (trace, mssge, debug, etc) clear(): método para limpiar los eventos registrados, se implementa cuando aplica. log(): método para registrar los eventos, reimplementado en cada clase concreta. logpublisers-service.ts: el servicio para instanciar y configurar los distintos loggers. getLoggers(): obtiene de un JSON la configuración (nombre, activo, location, functions) buildPublishers(): construye los loggers que están activos, según la configuración dada log-service.ts: es el servicio que se inyecta en los componentes para loguear eventos LoggerService: interface para implementar cada función (si guarda fecha, usuario, etc) LoggingFunction: interface para parámetros a solicitar (mensaje, datos adicionales)