diff --git a/lib/appenders/clustered.js b/lib/appenders/clustered.js index aae3a4c..b427ab6 100755 --- a/lib/appenders/clustered.js +++ b/lib/appenders/clustered.js @@ -71,7 +71,10 @@ function createAppender(config) { if (config.actualAppenders) { var size = config.actualAppenders.length; for(var i = 0; i < size; i++) { - config.actualAppenders[i](loggingEvent); + if (!config.appenders[i].category || config.appenders[i].category === loggingEvent.categoryName) { + // Relying on the index is not a good practice but otherwise the change would have been bigger. + config.actualAppenders[i](loggingEvent); + } } } } diff --git a/test/clusteredAppender-test.js b/test/clusteredAppender-test.js index 91e0a0f..f36748c 100755 --- a/test/clusteredAppender-test.js +++ b/test/clusteredAppender-test.js @@ -37,7 +37,8 @@ vows.describe('log4js cluster appender').addBatch({ }); var masterAppender = appenderModule.appender({ - actualAppenders: [ fakeActualAppender ] + actualAppenders: [fakeActualAppender, fakeActualAppender, fakeActualAppender], + appenders: [{}, {category: "test"}, {category: "wovs"}] }); // Actual test - log message using masterAppender @@ -56,7 +57,9 @@ vows.describe('log4js cluster appender').addBatch({ }, "should log using actual appender": function(topic) { + assert.equal(topic.loggingEvents.length, 2) assert.equal(topic.loggingEvents[0].data[0], 'masterAppender test'); + assert.equal(topic.loggingEvents[1].data[0], 'masterAppender test'); }, },