2 var vows = require('vows')
3 , assert = require('assert')
4 , levels = require('../lib/levels')
5 , loggerModule = require('../lib/logger')
6 , Logger = loggerModule.Logger;
8 vows.describe('../lib/logger').addBatch({
9 'constructor with no parameters': {
11 'should use default category': function(logger) {
12 assert.equal(logger.category, Logger.DEFAULT_CATEGORY);
14 'should use TRACE log level': function(logger) {
15 assert.equal(logger.level, levels.TRACE);
19 'constructor with category': {
20 topic: new Logger('cheese'),
21 'should use category': function(logger) {
22 assert.equal(logger.category, 'cheese');
24 'should use TRACE log level': function(logger) {
25 assert.equal(logger.level, levels.TRACE);
29 'constructor with category and level': {
30 topic: new Logger('cheese', 'debug'),
31 'should use category': function(logger) {
32 assert.equal(logger.category, 'cheese');
34 'should use level': function(logger) {
35 assert.equal(logger.level, levels.DEBUG);
40 topic: new Logger('cheese', 'info'),
41 'should provide a level enabled function for all levels': function(logger) {
42 assert.isFunction(logger.isTraceEnabled);
43 assert.isFunction(logger.isDebugEnabled);
44 assert.isFunction(logger.isInfoEnabled);
45 assert.isFunction(logger.isWarnEnabled);
46 assert.isFunction(logger.isErrorEnabled);
47 assert.isFunction(logger.isFatalEnabled);
49 'should return the right values': function(logger) {
50 assert.isFalse(logger.isTraceEnabled());
51 assert.isFalse(logger.isDebugEnabled());
52 assert.isTrue(logger.isInfoEnabled());
53 assert.isTrue(logger.isWarnEnabled());
54 assert.isTrue(logger.isErrorEnabled());
55 assert.isTrue(logger.isFatalEnabled());
59 'should emit log events': {
62 logger = new Logger();
63 logger.addListener('log', function (logEvent) { events.push(logEvent); });
64 logger.debug('Event 1');
65 loggerModule.disableAllLogWrites();
66 logger.debug('Event 2');
67 loggerModule.enableAllLogWrites();
68 logger.debug('Event 3');
72 'when log writes are enabled': function(events) {
73 assert.equal(events[0].data[0], 'Event 1');
76 'but not when log writes are disabled': function(events) {
77 assert.equal(events.length, 2);
78 assert.equal(events[1].data[0], 'Event 3');