slf4ts-api
Version:
Simple logging facade for nodejs
76 lines • 2.73 kB
JavaScript
"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