backendless
Version:
Backendless JavaScript SDK for Node.js and the browser
80 lines (79 loc) • 2.16 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var LogLevelPriorities = {
off: 0,
fatal: 1,
error: 2,
warn: 3,
info: 4,
debug: 5,
trace: 6,
all: 6
};
var Logger = /*#__PURE__*/function () {
function Logger(name, logging) {
(0, _classCallCheck2["default"])(this, Logger);
this.name = name;
this.logging = logging;
}
(0, _createClass2["default"])(Logger, [{
key: "debug",
value: function debug(message) {
return this.log('DEBUG', message);
}
}, {
key: "info",
value: function info(message) {
return this.log('INFO', message);
}
}, {
key: "warn",
value: function warn(message, exception) {
return this.log('WARN', message, exception);
}
}, {
key: "error",
value: function error(message, exception) {
return this.log('ERROR', message, exception);
}
}, {
key: "fatal",
value: function fatal(message, exception) {
return this.log('FATAL', message, exception);
}
}, {
key: "trace",
value: function trace(message) {
return this.log('TRACE', message);
}
}, {
key: "log",
value: function log(level, message, exception) {
if (this.min(level)) {
return this.logging.push(this.name, level, message, exception);
}
}
}, {
key: "min",
value: function min(level) {
level = level.toLowerCase();
var globalLevel = this.logging.globalLevel;
var loggerLevel = this.logging.levels[this.name];
if (globalLevel && LogLevelPriorities[globalLevel.toLowerCase()] < LogLevelPriorities[level]) {
return false;
}
if (!loggerLevel) {
return true;
}
return LogLevelPriorities[loggerLevel.toLowerCase()] >= LogLevelPriorities[level];
}
}]);
return Logger;
}();
exports["default"] = Logger;