UNPKG

monolog

Version:

Log with Monolog

190 lines (145 loc) 4.42 kB
// Generated by CoffeeScript 1.6.3 "use strict"; var Logger, events, util; util = require('util'); events = require('events'); /* Monolog log channel It contains a stack of Handlers and a stack of Processors. and uses them to kstore records that are added to it. */ Logger = (function() { util.inherits(Logger, events.EventEmitter); Logger.LOG = "log"; Logger.DEBUG = 100; Logger.INFO = 200; Logger.NOTICE = 250; Logger.WARNING = 300; Logger.ERROR = 400; Logger.CRITICAL = 500; Logger.ALERT = 550; Logger.EMERGENCY = 600; Logger.API = 1; Logger.levels = { 100: 'DEBUG', 200: 'INFO', 250: 'NOTICE', 300: 'WARNING', 400: 'ERROR', 500: 'CRITICAL', 550: 'ALERT', 600: 'EMERGENCY' }; function Logger(name, handlers, processors) { this.name = name != null ? name : ""; this.handlers = handlers != null ? handlers : []; this.processors = processors != null ? processors : []; } Logger.prototype.getName = function() { return this.name; }; Logger.prototype.pushHandler = function(handler) { this.handlers.unshift(handler); return this; }; Logger.prototype.popHandler = function() { return this.handlers.pop(); }; Logger.prototype.pushProcessor = function(processor) { this.processors.unshift(processor); return this; }; Logger.prototype.popProcessor = function() { return this.processors.pop(); }; Logger.prototype.addRecord = function(level, message, context) { var handler, handlerKey, i, processor, record, _i, _j, _len, _len1, _ref, _ref1, _this = this; record = { message: message, context: context, level: level, level_name: Logger.levels[level] || 100, channel: this.name, datetime: new Date, extra: { toString: function() { return '[object Extra]'; } } }; handlerKey = null; _ref = this.handlers; for (i = _i = 0, _len = _ref.length; _i < _len; i = ++_i) { handler = _ref[i]; if (handler.isHandling(record)) { handlerKey = i; break; } } if (handlerKey === null) { return false; } _ref1 = this.processors; for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) { processor = _ref1[_j]; record = processor(record); } while (this.handlers[handlerKey] && false === this.handlers[handlerKey].handle(record, function(err, res, record, handler) { return _this.emit(Logger.LOG, err, res, record, handler); })) { handlerKey++; } return true; }; Logger.prototype.debug = function(message, context) { return this.addRecord(Logger.DEBUG, message, context); }; Logger.prototype.info = function(message, context) { return this.addRecord(Logger.INFO, message, context); }; Logger.prototype.notice = function(message, context) { return this.addRecord(Logger.NOTICE, message, context); }; Logger.prototype.warning = function(message, context) { return this.addRecord(Logger.WARNING, message, context); }; Logger.prototype.error = function(message, context) { return this.addRecord(Logger.ERROR, message, context); }; Logger.prototype.critical = function(message, context) { return this.addRecord(Logger.CRITICAL, message, context); }; Logger.prototype.alert = function(message, context) { return this.addRecord(Logger.ALERT, message, context); }; Logger.prototype.emergency = function(message, context) { return this.addRecord(Logger.EMERGENCY, message, context); }; Logger.prototype.isHandling = function(level) { var record; record = { level: level }; return this.handlers.some(function(handler) { return handler.isHandling(record); }); }; Logger.prototype.log = function(level, message, context) { if (typeof level === "string") { level = Logger[level]; } return this.addRecord(level, message, context); }; Logger.prototype.crit = Logger.prototype.critical; Logger.prototype.err = Logger.prototype.error; Logger.prototype.emer = Logger.prototype.emergency; Logger.prototype.warn = Logger.prototype.warning; Logger.prototype.addProcessor = Logger.prototype.pushProcessor; Logger.prototype.addHandler = Logger.prototype.pushHandler; return Logger; })(); module.exports = Logger; /* //@ sourceMappingURL=Logger.map */