log4js-node/lib/appenders/logLevelFilter.js
2016-07-15 21:31:26 +08:00

25 lines
797 B
JavaScript

'use strict';
const levels = require('../levels');
const log4js = require('../log4js');
function logLevelFilter(minLevelString, maxLevelString, appender) {
const minLevel = levels.toLevel(minLevelString);
const maxLevel = levels.toLevel(maxLevelString, levels.FATAL);
return logEvent => {
const eventLevel = logEvent.level;
if (eventLevel.isGreaterThanOrEqualTo(minLevel) && eventLevel.isLessThanOrEqualTo(maxLevel)) {
appender(logEvent);
}
};
}
function configure(config, options) {
log4js.loadAppender(config.appender.type);
const appender = log4js.appenderMakers[config.appender.type](config.appender, options);
return logLevelFilter(config.level, config.maxLevel, appender);
}
module.exports.appender = logLevelFilter;
module.exports.configure = configure;