added methods and config to turn off console.log replacement (issue #34)

This commit is contained in:
Gareth Jones
2011-11-18 08:44:04 +11:00
parent 1d769fdf33
commit 40c5f5ee70
2 changed files with 128 additions and 56 deletions

View File

@@ -279,6 +279,12 @@ function configureOnceOff(config) {
try {
configureAppenders(config.appenders);
configureLevels(config.levels);
if (config.doNotReplaceConsole) {
restoreConsole();
} else {
replaceConsole();
}
} catch (e) {
throw new Error("Problem reading log4js config " + util.inspect(config) + ". Error was \"" + e.message + "\" ("+e.stack+")");
}
@@ -339,13 +345,22 @@ function replaceConsole(logger) {
fn.apply(logger, arguments);
}
}
['log','debug','info','warn','error'].forEach(function (item) {
if (console['_preLog4js_log'] === undefined) {
if (console['_preLog4js_log'] === undefined) {
logger = logger || getLogger("console");
['log','debug','info','warn','error'].forEach(function (item) {
console['_preLog4js_'+item] = console[item];
}
console[item] = replaceWith(item === 'log' ? logger.info : logger[item]);
});
console[item] = replaceWith(item === 'log' ? logger.info : logger[item]);
});
}
}
function restoreConsole() {
if (console['_preLog4js_log']) {
['log', 'debug', 'info', 'warn', 'error'].forEach(function (item) {
console[item] = console['_preLog4js_'+item];
delete console['_preLog4js_'+item];
});
}
}
function loadAppender(appender) {
@@ -363,6 +378,9 @@ module.exports = {
clearAppenders: clearAppenders,
configure: configure,
replaceConsole: replaceConsole,
restoreConsole: restoreConsole,
levels: levels,
setGlobalLogLevel: setGlobalLogLevel,
@@ -379,8 +397,6 @@ module.exports = {
//set ourselves up if we can find a default log4js.json
configure(findConfiguration());
//replace console.log, etc with log4js versions
replaceConsole(getLogger("console"));
//keep the old-style layouts
['basicLayout','messagePassThroughLayout','colouredLayout','coloredLayout'].forEach(function(item) {