/** @module Logger */ __PluginManager__.register('Logger', function(module, exports, require, global){ var support = require('support'); var Collection = require('Collection'); var LogLevel = { EMERGENCY: 'emergency', ALERT: 'alert', CRITICAL: 'critical', ERROR: 'error', WARNING: 'warning', NOTICE: 'notice', INFO: 'info', DEBUG: 'debug', SUCCESS: 'success', }; /** * @class Logger * @memberOf kit */ var Logger = function() { this.collection = new Collection(); this.onLog = new Collection(); }; /** * @param collection {kit.Collection} */ Logger.prototype.setCollection = function (collection) { this.collection = collection; }; Logger.prototype.emergency = function (message, context) { this.log(LogLevel.EMERGENCY, message, context); }; Logger.prototype.alert = function (message, context) { this.log(LogLevel.ALERT, message, context); }; Logger.prototype.critical = function (message, context) { this.log(LogLevel.CRITICAL, message, context); }; Logger.prototype.error = function (message, context) { this.log(LogLevel.ERROR, message, context); }; Logger.prototype.warning = function (message, context) { this.log(LogLevel.WARNING, message, context); }; Logger.prototype.notice = function (message, context) { this.log(LogLevel.NOTICE, message, context); }; Logger.prototype.info = function (message, context) { this.log(LogLevel.INFO, message, context); }; Logger.prototype.debug = function (message, context) { this.log(LogLevel.DEBUG, message, context); }; Logger.prototype.success = function (message, context) { this.log(LogLevel.SUCCESS, message, context); }; Logger.prototype.log = function (level, message, context = []) { var data = { level: level, message: message, context: context, }; this.collection.push(data); this.onLog.eachCall(this, data); }; return module.exports = Logger; });