123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- var Emitter = require('./Emitter');
- var Enum = require('./Enum');
- var toArr = require('./toArr');
- var isUndef = require('./isUndef');
- var clone = require('./clone');
- var isStr = require('./isStr');
- var isNum = require('./isNum');
- exports = Emitter.extend(
- {
- initialize: function Logger(name, level) {
- this.name = name;
- this.setLevel(isUndef(level) ? exports.level.DEBUG : level);
- this.callSuper(Emitter, 'initialize', arguments);
- },
- setLevel: function(level) {
- if (isStr(level)) {
- level = exports.level[level.toUpperCase()];
- if (level) this._level = level;
- return this;
- }
- if (isNum(level)) this._level = level;
- return this;
- },
- getLevel: function() {
- return this._level;
- },
- formatter: function(type, argList) {
- return argList;
- },
- trace: function() {
- return this._log('trace', arguments);
- },
- debug: function() {
- return this._log('debug', arguments);
- },
- info: function() {
- return this._log('info', arguments);
- },
- warn: function() {
- return this._log('warn', arguments);
- },
- error: function() {
- return this._log('error', arguments);
- },
- _log: function(type, argList) {
- argList = toArr(argList);
- if (argList.length === 0) return this;
- this.emit('all', type, clone(argList));
- if (exports.level[type.toUpperCase()] < this._level) return this;
- this.emit(type, clone(argList));
- var consoleMethod = type === 'debug' ? console.log : console[type];
- consoleMethod.apply(console, this.formatter(type, argList));
- return this;
- }
- },
- {
- level: new Enum({
- TRACE: 0,
- DEBUG: 1,
- INFO: 2,
- WARN: 3,
- ERROR: 4,
- SILENT: 5
- })
- }
- );
- module.exports = exports;
|