UNPKG

log4js2

Version:

[![Build Status](https://travis-ci.org/anigenero/log4js2.svg?branch=master)](https://travis-ci.org/anigenero/log4js2) [![codecov](https://codecov.io/gh/anigenero/log4js2/branch/master/graph/badge.svg)](https://codecov.io/gh/anigenero/log4js2)

53 lines 1.72 kB
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