UNPKG

slf4ts-api

Version:

Simple logging facade for nodejs

76 lines 2.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); require("source-map-support/register"); const events_1 = require("events"); var LogLevel; (function (LogLevel) { LogLevel[LogLevel["ERROR"] = 0] = "ERROR"; LogLevel[LogLevel["WARN"] = 1] = "WARN"; LogLevel[LogLevel["INFO"] = 2] = "INFO"; LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG"; LogLevel[LogLevel["TRACE"] = 4] = "TRACE"; })(LogLevel = exports.LogLevel || (exports.LogLevel = {})); class LoggerConfigurationImpl { constructor() { this.events = new events_1.EventEmitter(); this.logLevelMapping = new Map(); this.configMapping = new Map(); this.defaultLogLevel = LogLevel.INFO; } getLogLevel(group = '', name = '') { const compoundKey = `${group}:${name}`; if (this.logLevelMapping.has(compoundKey)) { return this.logLevelMapping.get(compoundKey); } return this.defaultLogLevel; } setDefaultLogLevel(defaultLogLevel) { this.defaultLogLevel = defaultLogLevel; return this; } setLogLevel(logLevel, group = '', name = '') { const event = { group, logLevel, name }; const compoundKey = `${group}:${name}`; this.logLevelMapping.set(compoundKey, logLevel); this.events.emit('changed:log-level', event); return this; } setConfig(config, group = '', name = '') { const event = { group, config, name }; const compoundKey = `${group}:${name}`; this.configMapping.set(compoundKey, config); this.events.emit('changed:config', event); return this; } getConfig(group = '', name = '') { return this.configMapping.get(`${group}:${name}`) || this.configMapping.get(`${group}:`) || this.configMapping.get(':'); } onLogLevelChanged(callback, group = '', name = '') { this.events.on('changed:log-level', callback); return this; } onConfigChanged(callback, group = '', name = '') { this.events.on('changed:config', callback); return this; } removeAllListeners() { this.events.removeAllListeners(); return this; } reset() { this.events.removeAllListeners(); this.logLevelMapping.clear(); this.configMapping.clear(); this.defaultLogLevel = LogLevel.INFO; return this; } hasConfig(group = '', name = '') { const compoundKey = `${group}:${name}`; return this.configMapping.has(compoundKey); } } exports.LoggerConfigurationImpl = LoggerConfigurationImpl; exports.LoggerConfiguration = new LoggerConfigurationImpl(); //# sourceMappingURL=LoggerConfiguration.js.map