diff --git a/lib/logger.js b/lib/logger.js index 1492c0d..4da0daf 100644 --- a/lib/logger.js +++ b/lib/logger.js @@ -1,7 +1,8 @@ -var levels = require('./levels'), - util = require('util'), - events = require('events'), - DEFAULT_CATEGORY = '[default]'; +"use strict"; +var levels = require('./levels') +, util = require('util') +, events = require('events') +, DEFAULT_CATEGORY = '[default]'; /** * Models a logging event. @@ -13,11 +14,11 @@ var levels = require('./levels'), * @author Seth Chisamore */ function LoggingEvent (categoryName, level, data, logger) { - this.startTime = new Date(); - this.categoryName = categoryName; - this.data = data; - this.level = level; - this.logger = logger; + this.startTime = new Date(); + this.categoryName = categoryName; + this.data = data; + this.level = level; + this.logger = logger; } /** @@ -28,49 +29,50 @@ function LoggingEvent (categoryName, level, data, logger) { * @author Stephan Strittmatter */ function Logger (name, level) { - this.category = name || DEFAULT_CATEGORY; - - if (! this.level) { - this.__proto__.level = levels.TRACE; - } + this.category = name || DEFAULT_CATEGORY; + + if (level) { + this.setLevel(level); + } } util.inherits(Logger, events.EventEmitter); Logger.DEFAULT_CATEGORY = DEFAULT_CATEGORY; +Logger.prototype.level = levels.TRACE; Logger.prototype.setLevel = function(level) { - this.level = levels.toLevel(level, this.level || levels.TRACE); + this.level = levels.toLevel(level, this.level || levels.TRACE); }; Logger.prototype.removeLevel = function() { - delete this.level; + delete this.level; }; Logger.prototype.log = function() { - var args = Array.prototype.slice.call(arguments) + var args = Array.prototype.slice.call(arguments) , logLevel = args.shift() , loggingEvent = new LoggingEvent(this.category, logLevel, args, this); - this.emit("log", loggingEvent); + this.emit("log", loggingEvent); }; Logger.prototype.isLevelEnabled = function(otherLevel) { - return this.level.isLessThanOrEqualTo(otherLevel); + return this.level.isLessThanOrEqualTo(otherLevel); }; ['Trace','Debug','Info','Warn','Error','Fatal'].forEach( - function(levelString) { - var level = levels.toLevel(levelString); - Logger.prototype['is'+levelString+'Enabled'] = function() { - return this.isLevelEnabled(level); - }; - - Logger.prototype[levelString.toLowerCase()] = function () { - if (this.isLevelEnabled(level)) { - var args = Array.prototype.slice.call(arguments); - args.unshift(level); - Logger.prototype.log.apply(this, args); - } - }; - } + function(levelString) { + var level = levels.toLevel(levelString); + Logger.prototype['is'+levelString+'Enabled'] = function() { + return this.isLevelEnabled(level); + }; + + Logger.prototype[levelString.toLowerCase()] = function () { + if (this.isLevelEnabled(level)) { + var args = Array.prototype.slice.call(arguments); + args.unshift(level); + Logger.prototype.log.apply(this, args); + } + }; + } );