diff --git a/examples/changeLevel.js b/examples/changeLevel.js new file mode 100644 index 0000000..2d8e278 --- /dev/null +++ b/examples/changeLevel.js @@ -0,0 +1,26 @@ + +/** + * Module dependencies. + */ + +var Log = require('../lib/log') + , log = new Log(); + +var loop = 0; + +function LogStuffOnLevels(){ + loop++; + log.debug('a debug message %s',loop); + log.info('a info message %s',loop); + log.notice('a notice message %s',loop); + log.warning('a warning message %s',loop); + log.error('a error message %s',loop); + log.critical('a critical message %s',loop); + log.alert('a alert message %s',loop); + log.emergency('a emergency message %s',loop); +} + +for(var i=0;i<8;i++){ + log.setLevel(i); + LogStuffOnLevels(); +} diff --git a/lib/log.js b/lib/log.js index 48a2ad2..a024258 100644 --- a/lib/log.js +++ b/lib/log.js @@ -21,8 +21,9 @@ var EventEmitter = require('events').EventEmitter; */ var Log = exports = module.exports = function Log(level, stream){ - if ('string' == typeof level) level = exports[level.toUpperCase()]; - this.level = level || exports.DEBUG; + if ('string' === typeof level) level = exports[level.toUpperCase()]; + if ('undefined' === typeof level) level = exports.DEBUG; + this.level = level; this.stream = stream || process.stdout; if (this.stream.readable) this.read(); }; @@ -157,6 +158,18 @@ Log.prototype = { ); } }, + + /** + * Change current logging level. + * + * @param {Number} level + * @api public + */ + + setLevel: function(level) { + if ('string' == typeof level) level = exports[level.toUpperCase()]; + this.level = level; + }, /** * Log emergency `msg`.