formatting fixes, unnecessary code removed
This commit is contained in:
@@ -1,23 +1,19 @@
|
|||||||
var levels = require('../levels');
|
"use strict";
|
||||||
var log4js = require('../log4js');
|
var log4js = require('../log4js');
|
||||||
|
|
||||||
function contains(list, value) {
|
|
||||||
return list.indexOf(value) !== -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
function categoryFilter (excludes, appender) {
|
function categoryFilter (excludes, appender) {
|
||||||
if (typeof(excludes) === 'string') excludes = [excludes];
|
if (typeof(excludes) === 'string') excludes = [excludes];
|
||||||
return function(logEvent) {
|
return function(logEvent) {
|
||||||
if (excludes.indexOf(logEvent.categoryName) === -1) {
|
if (excludes.indexOf(logEvent.categoryName) === -1) {
|
||||||
appender(logEvent);
|
appender(logEvent);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function configure(config) {
|
function configure(config) {
|
||||||
log4js.loadAppender(config.appender.type);
|
log4js.loadAppender(config.appender.type);
|
||||||
var appender = log4js.appenderMakers[config.appender.type](config.appender);
|
var appender = log4js.appenderMakers[config.appender.type](config.appender);
|
||||||
return categoryFilter(config.exclude, appender);
|
return categoryFilter(config.exclude, appender);
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.appender = categoryFilter;
|
exports.appender = categoryFilter;
|
||||||
|
|||||||
@@ -5,75 +5,79 @@ var vows = require('vows')
|
|||||||
, assert = require('assert');
|
, assert = require('assert');
|
||||||
|
|
||||||
function remove(filename) {
|
function remove(filename) {
|
||||||
try {
|
try {
|
||||||
fs.unlinkSync(filename);
|
fs.unlinkSync(filename);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
//doesn't really matter if it failed
|
//doesn't really matter if it failed
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
vows.describe('log4js categoryFilter').addBatch({
|
vows.describe('log4js categoryFilter').addBatch({
|
||||||
'appender': {
|
'appender': {
|
||||||
topic: function() {
|
topic: function() {
|
||||||
|
|
||||||
var log4js = require('../lib/log4js'), logEvents = [], webLogger, appLogger;
|
var log4js = require('../lib/log4js'), logEvents = [], webLogger, appLogger;
|
||||||
log4js.clearAppenders();
|
log4js.clearAppenders();
|
||||||
var appender = require('../lib/appenders/categoryFilter').appender(['app'], function(evt) { logEvents.push(evt); });
|
var appender = require('../lib/appenders/categoryFilter')
|
||||||
log4js.addAppender(appender, ["app","web"]);
|
.appender(
|
||||||
|
['app'],
|
||||||
|
function(evt) { logEvents.push(evt); }
|
||||||
|
);
|
||||||
|
log4js.addAppender(appender, ["app","web"]);
|
||||||
|
|
||||||
webLogger = log4js.getLogger("web");
|
webLogger = log4js.getLogger("web");
|
||||||
appLogger = log4js.getLogger("app");
|
appLogger = log4js.getLogger("app");
|
||||||
|
|
||||||
webLogger.debug('This should get logged');
|
webLogger.debug('This should get logged');
|
||||||
appLogger.debug('This should not');
|
appLogger.debug('This should not');
|
||||||
webLogger.debug('Hello again');
|
webLogger.debug('Hello again');
|
||||||
log4js.getLogger('db').debug('This shouldn\'t be included by the appender anyway');
|
log4js.getLogger('db').debug('This shouldn\'t be included by the appender anyway');
|
||||||
|
|
||||||
return logEvents;
|
return logEvents;
|
||||||
},
|
|
||||||
'should only pass matching category' : function(logEvents) {
|
|
||||||
assert.equal(logEvents.length, 2);
|
|
||||||
assert.equal(logEvents[0].data[0], 'This should get logged');
|
|
||||||
assert.equal(logEvents[1].data[0], 'Hello again');
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
'should only pass matching category' : function(logEvents) {
|
||||||
'configure': {
|
assert.equal(logEvents.length, 2);
|
||||||
topic: function() {
|
assert.equal(logEvents[0].data[0], 'This should get logged');
|
||||||
var log4js = require('../lib/log4js')
|
assert.equal(logEvents[1].data[0], 'Hello again');
|
||||||
, logger, weblogger;
|
|
||||||
|
|
||||||
remove(__dirname + '/categoryFilter-web.log');
|
|
||||||
remove(__dirname + '/categoryFilter-noweb.log');
|
|
||||||
|
|
||||||
log4js.configure('test/with-categoryFilter.json');
|
|
||||||
logger = log4js.getLogger("app");
|
|
||||||
weblogger = log4js.getLogger("web");
|
|
||||||
|
|
||||||
logger.info('Loading app');
|
|
||||||
logger.debug('Initialising indexes');
|
|
||||||
weblogger.info('00:00:00 GET / 200');
|
|
||||||
weblogger.warn('00:00:00 GET / 500');
|
|
||||||
//wait for the file system to catch up
|
|
||||||
setTimeout(this.callback, 100);
|
|
||||||
},
|
|
||||||
'tmp-tests.log': {
|
|
||||||
topic: function() {
|
|
||||||
fs.readFile(__dirname + '/categoryFilter-noweb.log', 'utf8', this.callback);
|
|
||||||
},
|
|
||||||
'should contain all log messages': function(contents) {
|
|
||||||
var messages = contents.trim().split('\n');
|
|
||||||
assert.deepEqual(messages, ['Loading app','Initialising indexes']);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
'tmp-tests-web.log': {
|
|
||||||
topic: function() {
|
|
||||||
fs.readFile(__dirname + '/categoryFilter-web.log','utf8',this.callback);
|
|
||||||
},
|
|
||||||
'should contain only error and warning log messages': function(contents) {
|
|
||||||
var messages = contents.trim().split('\n');
|
|
||||||
assert.deepEqual(messages, ['00:00:00 GET / 200','00:00:00 GET / 500']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
'configure': {
|
||||||
|
topic: function() {
|
||||||
|
var log4js = require('../lib/log4js')
|
||||||
|
, logger, weblogger;
|
||||||
|
|
||||||
|
remove(__dirname + '/categoryFilter-web.log');
|
||||||
|
remove(__dirname + '/categoryFilter-noweb.log');
|
||||||
|
|
||||||
|
log4js.configure('test/with-categoryFilter.json');
|
||||||
|
logger = log4js.getLogger("app");
|
||||||
|
weblogger = log4js.getLogger("web");
|
||||||
|
|
||||||
|
logger.info('Loading app');
|
||||||
|
logger.debug('Initialising indexes');
|
||||||
|
weblogger.info('00:00:00 GET / 200');
|
||||||
|
weblogger.warn('00:00:00 GET / 500');
|
||||||
|
//wait for the file system to catch up
|
||||||
|
setTimeout(this.callback, 100);
|
||||||
|
},
|
||||||
|
'tmp-tests.log': {
|
||||||
|
topic: function() {
|
||||||
|
fs.readFile(__dirname + '/categoryFilter-noweb.log', 'utf8', this.callback);
|
||||||
|
},
|
||||||
|
'should contain all log messages': function(contents) {
|
||||||
|
var messages = contents.trim().split('\n');
|
||||||
|
assert.deepEqual(messages, ['Loading app','Initialising indexes']);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'tmp-tests-web.log': {
|
||||||
|
topic: function() {
|
||||||
|
fs.readFile(__dirname + '/categoryFilter-web.log','utf8',this.callback);
|
||||||
|
},
|
||||||
|
'should contain only error and warning log messages': function(contents) {
|
||||||
|
var messages = contents.trim().split('\n');
|
||||||
|
assert.deepEqual(messages, ['00:00:00 GET / 200','00:00:00 GET / 500']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}).export(module);
|
}).export(module);
|
||||||
|
|||||||
Reference in New Issue
Block a user