Una libreria para node de registro de log asincrono para varios publicadores.
DsLogger esta diseñada para ser una librería de registro simple y universal (tanto back como front) con soporte para múltiples publicadores.
Un publicador es un servicio de almacenamiento para los registros. Cada instancia de DsLogger puede tener varios publicadores, con niveles de log distintos. Por ejemplo, seria posible tener un publicador de tipo fichero para que se registren los log a nivel debug y otro publicador también de tipo fichero que permita registrar solo los log de error.
[sudo] npm install @desenrola/dslogger
import { DsLogger } from '@desenrola/ds-loger';
const logger = new DsLogger();
logger.info('Test message');
Por defecto el logger no trae ningun publicador cargado.
import { ConsolePublisher, ApiPublisher, LocalStoragePublisher, FilePublisher, DsLogger } from '@desenrola/ds-loger';
const consolePublisher = new ConsolePublisher('all');
const apiPublisher = new ApiPublisher('dabug');
const localStoragePublisher = new LocalStoragePublisher('info');
const filePublisher = new FilePublisher('error');
const logger = new DsLogger()
.addPublisher(consolePublisher)
.addPublisher(apiPublisher)
.addPublisher(localStoragePublisher)
.addPublisher(filePublisher);
logger.info('Test message');
import { ConsolePublisher, DsLogger } from '@desenrola/ds-loger';
const consolePublisher = new ConsolePublisher('all');
const logger = new DsLogger({ format: 'string' || 'JSON', withDate: true || false }).addPublisher(consolePublisher);
logger.info('Test message');
import { ConsolePublisher, ISetting, DsLogger } from '@desenrola/ds-loger';
const config: ISetting = {
tags: [{ tag1: 'value1' }, { tag2: 'value2' }],
};
const consolePublisher = new ConsolePublisher('all');
const logger = new DsLogger(config).addPublisher(consolePublisher);
logger.info('Test message');
import { ConsolePublisher, DsLogger } from '@desenrola/ds-loger';
const consolePublisher = new ConsolePublisher('all');
const logger = new DsLogger().addPublisher(consolePublisher);
logger.info('Test message');
logger.clear();
export type ILevel = 'all' | 'debug' | 'info' | 'notice' | 'warn' | 'error' | 'crit' | 'alert' | 'emerg';
export interface IPublisher {
log: (msg: JSON | string, level: ILevel) => void;
clear: () => void;
canHandler: (level: ILevel) => boolean;
}
export interface ITagPrimitive {
name: string;
value: string;
}
export interface ISettingPrimitives {
format?: IFormat;
withDate?: boolean;
tags?: ITagPrimitive[];
}
Instalación de npm
curl https://npmjs.org/install.sh | sh
instalando dslogger
[sudo] npm install @desenrola/dslogger
Todas las pruebas de DsLogger están escritas en jest y diseñadas para ejecutarse con npm.
npm test
Autor: Borja Fernández Rodrigo
Contribuidores: Desenrola