changed the way appenders are loaded, so that they don't need to include log4js as a direct dependency
This commit is contained in:
+16
-11
@@ -213,8 +213,9 @@ function validateCategories(cats) {
|
||||
}
|
||||
|
||||
function clearAppenders () {
|
||||
debug("clearing appenders");
|
||||
debug("clearing appenders and appender makers");
|
||||
appenders = {};
|
||||
appenderMakers = {};
|
||||
}
|
||||
|
||||
function appenderByName(name) {
|
||||
@@ -230,7 +231,6 @@ function configureAppenders(appenderMap) {
|
||||
Object.keys(appenderMap).forEach(function(appenderName) {
|
||||
var appender, appenderConfig = appenderMap[appenderName];
|
||||
loadAppender(appenderConfig.type);
|
||||
appenderConfig.makers = appenderMakers;
|
||||
try {
|
||||
appenders[appenderName] = appenderMakers[appenderConfig.type](
|
||||
appenderConfig,
|
||||
@@ -247,21 +247,26 @@ function configureAppenders(appenderMap) {
|
||||
|
||||
function loadAppender(appender) {
|
||||
var appenderModule;
|
||||
try {
|
||||
appenderModule = require('./appenders/' + appender);
|
||||
} catch (e) {
|
||||
|
||||
if (!appenderMakers[appender]) {
|
||||
debug("Loading appender ", appender);
|
||||
try {
|
||||
appenderModule = require(appender);
|
||||
} catch (err) {
|
||||
throw new Error("Could not load appender of type '" + appender + "'.");
|
||||
appenderModule = require('./appenders/' + appender);
|
||||
} catch (e) {
|
||||
try {
|
||||
debug("Appender ", appender, " is not a core log4js appender.");
|
||||
appenderModule = require(appender);
|
||||
} catch (err) {
|
||||
throw new Error("Could not load appender of type '" + appender + "'.");
|
||||
}
|
||||
}
|
||||
}
|
||||
appenderMakers[appender] = appenderModule.configure.bind(appenderModule);
|
||||
appenderMakers[appender] = appenderModule(layouts, levels);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getLogger: getLogger,
|
||||
configure: configure,
|
||||
configure: configure
|
||||
};
|
||||
|
||||
//set ourselves up
|
||||
|
||||
Reference in New Issue
Block a user