appenders can be added to multiple categories at the same time
This commit is contained in:
parent
caa7338b04
commit
a7006444b3
@ -55,7 +55,7 @@ var log4js = {
|
||||
* @static
|
||||
* @final
|
||||
*/
|
||||
version: "0.1.0",
|
||||
version: "0.1.1",
|
||||
|
||||
/**
|
||||
* Date of logger initialized.
|
||||
@ -119,8 +119,21 @@ exports.getDefaultLogger = log4js.getDefaultLogger = function() {
|
||||
return log4js.getLogger(DEFAULT_CATEGORY);
|
||||
};
|
||||
|
||||
exports.addAppender = log4js.addAppender = function (appender, categoryName) {
|
||||
var category = categoryName || ALL_CATEGORIES;
|
||||
/**
|
||||
* args are appender, then zero or more categories
|
||||
*/
|
||||
exports.addAppender = log4js.addAppender = function () {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
var appender = args.shift();
|
||||
if (args.length == 0) {
|
||||
args = [ ALL_CATEGORIES ];
|
||||
}
|
||||
//argument may already be an array
|
||||
if (args[0].forEach) {
|
||||
args = args[0];
|
||||
}
|
||||
|
||||
args.forEach(function(category) {
|
||||
if (!log4js.appenders[category]) {
|
||||
log4js.appenders[category] = [];
|
||||
}
|
||||
@ -135,13 +148,14 @@ exports.addAppender = log4js.addAppender = function (appender, categoryName) {
|
||||
} else if (log4js.loggers[category]) {
|
||||
log4js.loggers[category].addListener("log", appender);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.clearAppenders = log4js.clearAppenders = function() {
|
||||
log4js.appenders = [];
|
||||
for (var logger in log4js.loggers) {
|
||||
if (log4js.loggers.hasOwnProperty(logger)) {
|
||||
log4js.loggers[logger].listeners.length = 0;
|
||||
log4js.loggers[logger].removeAllListeners("log");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "log4js",
|
||||
"version": "0.1.0",
|
||||
"version": "0.1.1",
|
||||
"description": "Port of Log4js to work with node.",
|
||||
"keywords": [
|
||||
"logging",
|
||||
|
@ -48,7 +48,6 @@ describe 'log4js'
|
||||
|
||||
describe 'addAppender'
|
||||
before_each
|
||||
log4js.clearAppenders();
|
||||
appenderEvent = undefined;
|
||||
appender = function(logEvent) { appenderEvent = logEvent; };
|
||||
end
|
||||
@ -72,6 +71,15 @@ describe 'log4js'
|
||||
|
||||
appenderEvent.should.be event
|
||||
otherEvent.should.be event
|
||||
|
||||
otherEvent = undefined;
|
||||
appenderEvent = undefined;
|
||||
log4js.getLogger('pants').debug("this should not be propagated to otherEvent");
|
||||
otherEvent.should.be undefined
|
||||
appenderEvent.should.not.be undefined
|
||||
appenderEvent.message.should.be "this should not be propagated to otherEvent"
|
||||
|
||||
cheeseLogger = null;
|
||||
end
|
||||
end
|
||||
|
||||
@ -88,6 +96,45 @@ describe 'log4js'
|
||||
end
|
||||
end
|
||||
|
||||
describe 'with multiple categories'
|
||||
it 'should register the function as a listener for all the categories'
|
||||
log4js.addAppender(appender, 'tests', 'biscuits');
|
||||
|
||||
logger.debug('this is a test');
|
||||
appenderEvent.should.be event
|
||||
appenderEvent = undefined;
|
||||
|
||||
var otherLogger = log4js.getLogger('biscuits');
|
||||
otherLogger.debug("mmm... garibaldis");
|
||||
appenderEvent.should.not.be undefined
|
||||
appenderEvent.message.should.be "mmm... garibaldis"
|
||||
appenderEvent = undefined;
|
||||
|
||||
otherLogger = null;
|
||||
|
||||
log4js.getLogger("something else").debug("pants");
|
||||
appenderEvent.should.be undefined
|
||||
end
|
||||
|
||||
it 'should register the function when the list of categories is an array'
|
||||
log4js.addAppender(appender, ['tests', 'pants']);
|
||||
|
||||
logger.debug('this is a test');
|
||||
appenderEvent.should.be event
|
||||
appenderEvent = undefined;
|
||||
|
||||
var otherLogger = log4js.getLogger('pants');
|
||||
otherLogger.debug("big pants");
|
||||
appenderEvent.should.not.be undefined
|
||||
appenderEvent.message.should.be "big pants"
|
||||
appenderEvent = undefined;
|
||||
|
||||
otherLogger = null;
|
||||
|
||||
log4js.getLogger("something else").debug("pants");
|
||||
appenderEvent.should.be undefined
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'basicLayout'
|
||||
@ -189,6 +236,8 @@ describe 'log4js'
|
||||
//and sets the log level for "tests" to WARN
|
||||
log4js.configure('spec/fixtures/log4js.json');
|
||||
event = undefined;
|
||||
logger = log4js.getLogger("tests");
|
||||
logger.addListener("log", function(evt) { event = evt });
|
||||
|
||||
logger.info('this should not fire an event');
|
||||
event.should.be undefined
|
||||
@ -200,7 +249,6 @@ describe 'log4js'
|
||||
|
||||
it 'should handle logLevelFilter configuration'
|
||||
log4js.configure('spec/fixtures/with-logLevelFilter.json');
|
||||
event = undefined;
|
||||
|
||||
logger.info('main');
|
||||
logger.error('both');
|
||||
|
Loading…
Reference in New Issue
Block a user