diff --git a/lib/logger.js b/lib/logger.js index 43d1f9c..7ea123c 100644 --- a/lib/logger.js +++ b/lib/logger.js @@ -186,14 +186,13 @@ Logger.prototype._log = function(level, args) { // // Event emitting plan in sequence: // - // * Emit on global key from rootLogger. + // * Emit on global key from rootLogger if the event is loggable. // * Emit a LEVEL event on the rootLogger // * For each name in the ancestor chain, emit an event of that name. - if (!this.isLoggable(level)) { - return + if (this.isLoggable(level)) { + rootLogger.emit('', logRecord); } - rootLogger.emit('', logRecord); rootLogger.emit(level, logRecord); var logger = this; diff --git a/lib/logger_test.js b/lib/logger_test.js index 9726a0b..c9ede5a 100644 --- a/lib/logger_test.js +++ b/lib/logger_test.js @@ -2,6 +2,10 @@ var Logger = require('./logger'); var LogLevel = require('./level'); +exports.setUp = function (done) { + Logger._instance = null; + done(); +}; exports.testDefaultLogLevel = function(test) { var logger = new Logger('test'); @@ -104,3 +108,43 @@ exports.testCloneWithNewMetadata = function(test) { test.done(); }; + + +exports.testFineEvent = function(test) { + var logger = new Logger('test'); + var rootLogger = Logger.getSingleton(); + + var records = { + global: [], + fine: [], + test: [] + } + + rootLogger.on('', function (record) { + records.global.push(record) + }) + rootLogger.on(LogLevel.FINE, function (record) { + records.fine.push(record) + }) + rootLogger.on('test', function (record) { + records.test.push(record) + }) + + + logger.fine('hello'); + test.equal(0, records.global.length); + test.equal(1, records.fine.length); + test.equal(1, records.test.length); + + logger.finer('hello'); + test.equal(0, records.global.length); + test.equal(1, records.fine.length); + test.equal(2, records.test.length); + + logger.info('hello'); + test.equal(1, records.global.length); + test.equal(1, records.fine.length); + test.equal(3, records.test.length); + + test.done(); +}; diff --git a/package.json b/package.json index f8ed747..04a19a8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name" : "logg", - "version" : "0.3.3", + "version" : "0.3.4", "description" : "Logging library that allows for hierarchical loggers, multiple log levels, and flexible watching of log records.", "keywords" : ["log", "logging", "logger", "hierarchical", "handler", "watcher"], "repository" : {