2 var vows = require('vows')
4 , assert = require('assert')
6 , EOL = require('os').EOL || '\n';
8 function remove(filename) {
10 fs.unlinkSync(filename);
12 //doesn't really matter if it failed
16 vows.describe('log4js logLevelFilter').addBatch({
19 var log4js = require('../lib/log4js'), logEvents = [], logger;
20 log4js.clearAppenders();
22 require('../lib/appenders/logLevelFilter')
26 function(evt) { logEvents.push(evt); }
31 logger = log4js.getLogger("logLevelTest");
32 logger.debug('this should not trigger an event');
33 logger.warn('neither should this');
34 logger.error('this should, though');
35 logger.fatal('so should this');
38 'should only pass log events greater than or equal to its own level' : function(logEvents) {
39 assert.equal(logEvents.length, 2);
40 assert.equal(logEvents[0].data[0], 'this should, though');
41 assert.equal(logEvents[1].data[0], 'so should this');
47 var log4js = require('../lib/log4js')
50 remove(__dirname + '/logLevelFilter.log');
51 remove(__dirname + '/logLevelFilter-warnings.log');
52 remove(__dirname + '/logLevelFilter-debugs.log');
54 log4js.configure('test/with-logLevelFilter.json');
55 logger = log4js.getLogger("tests");
56 logger.debug('debug');
58 logger.error('error');
60 logger.debug('debug');
61 logger.trace('trace');
62 //wait for the file system to catch up
63 setTimeout(this.callback, 500);
67 fs.readFile(__dirname + '/logLevelFilter.log', 'utf8', this.callback);
69 'should contain all log messages': function (contents) {
70 var messages = contents.trim().split(EOL);
71 assert.deepEqual(messages, ['debug','info','error','warn','debug','trace']);
74 'tmp-tests-warnings.log': {
76 fs.readFile(__dirname + '/logLevelFilter-warnings.log','utf8',this.callback);
78 'should contain only error and warning log messages': function(contents) {
79 var messages = contents.trim().split(EOL);
80 assert.deepEqual(messages, ['error','warn']);
83 'tmp-tests-debugs.log': {
85 fs.readFile(__dirname + '/logLevelFilter-debugs.log','utf8',this.callback);
87 'should contain only trace and debug log messages': function(contents) {
88 var messages = contents.trim().split(EOL);
89 assert.deepEqual(messages, ['debug','debug','trace']);