Files
kit/assets/logger/logger.js
T
2022-02-18 20:55:54 +03:00

74 lines
2.1 KiB
JavaScript

/** @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;
});