123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- "use strict";
- var vows = require('vows')
- , fs = require('fs')
- , assert = require('assert');
- function remove(filename) {
- try {
- fs.unlinkSync(filename);
- } catch (e) {
- //doesn't really matter if it failed
- }
- }
- vows.describe('log4js logLevelFilter').addBatch({
- 'appender': {
- topic: function() {
- var log4js = require('../lib/log4js'), logEvents = [], logger;
- log4js.clearAppenders();
- log4js.addAppender(
- require('../lib/appenders/logLevelFilter')
- .appender(
- 'ERROR',
- function(evt) { logEvents.push(evt); }
- ),
- "logLevelTest"
- );
-
- logger = log4js.getLogger("logLevelTest");
- logger.debug('this should not trigger an event');
- logger.warn('neither should this');
- logger.error('this should, though');
- logger.fatal('so should this');
- return logEvents;
- },
- 'should only pass log events greater than or equal to its own level' : function(logEvents) {
- assert.equal(logEvents.length, 2);
- assert.equal(logEvents[0].data[0], 'this should, though');
- assert.equal(logEvents[1].data[0], 'so should this');
- }
- },
- 'configure': {
- topic: function() {
- var log4js = require('../lib/log4js')
- , logger;
-
- remove(__dirname + '/logLevelFilter.log');
- remove(__dirname + '/logLevelFilter-warnings.log');
-
- log4js.configure('test/with-logLevelFilter.json');
- logger = log4js.getLogger("tests");
- logger.info('main');
- logger.error('both');
- logger.warn('both');
- logger.debug('main');
- //wait for the file system to catch up
- setTimeout(this.callback, 100);
- },
- 'tmp-tests.log': {
- topic: function() {
- fs.readFile(__dirname + '/logLevelFilter.log', 'utf8', this.callback);
- },
- 'should contain all log messages': function(contents) {
- var messages = contents.trim().split('\n');
- assert.deepEqual(messages, ['main','both','both','main']);
- }
- },
- 'tmp-tests-warnings.log': {
- topic: function() {
- fs.readFile(__dirname + '/logLevelFilter-warnings.log','utf8',this.callback);
- },
- 'should contain only error and warning log messages': function(contents) {
- var messages = contents.trim().split('\n');
- assert.deepEqual(messages, ['both','both']);
- }
- }
- }
- }).export(module);
|