log4js2
Version:
[](https://travis-ci.org/anigenero/log4js2) [](https://codecov.io/gh/anigenero/log4js2)
53 lines • 1.72 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const log_appender_1 = require("./log.appender");
const _appenderMethods = new Set();
_appenderMethods.add('append');
_appenderMethods.add('isActive');
_appenderMethods.add('setLogLevel');
_appenderMethods.add('setLayout');
_appenderMethods.add('getLayout');
_appenderMethods.add('format');
/** @type {Object} */
const _appenders = new Map();
/**
* Validates that the appender
*
* @private
* @function
*
* @params {APPENDER} appender
* @throws {Error} if the appender is invalid
*/
const _validateAppender = (appender) => {
// if we are running ES6, we can make sure it extends LogAppender
// otherwise, it must be a function
if (!(appender instanceof log_appender_1.LogAppender)) {
return;
}
// instantiate the appender function
const appenderObj = new appender();
// ensure that the appender methods are present (and are functions)
_appenderMethods.forEach((element) => {
if (!appenderObj[element] || !(appenderObj[element] instanceof Function)) {
throw new Error(`Invalid appender: missing/invalid method: ${element}`);
}
});
};
/**
* Adds an appender to the appender queue
*
* @function
*
* @params {LogAppender} appender
*/
exports.addAppender = (appender, name) => {
_validateAppender(appender);
const appenderName = name || appender.appenderName || appender;
// only put the appender into the set if it doesn't exist already
if (!_appenders.has(appenderName)) {
_appenders.set(appenderName, appender);
}
};
exports.getAppender = (name) => _appenders.get(name);
exports.getAppenders = () => _appenders;
//# sourceMappingURL=index.js.map