spartan-logger
Version:
This logger is built for minimalists.
127 lines (109 loc) • 3.46 kB
JavaScript
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
var LogLevel;
(function (LogLevel) {
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
LogLevel[LogLevel["INFO"] = 1] = "INFO";
LogLevel[LogLevel["WARN"] = 2] = "WARN";
LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
LogLevel[LogLevel["SILENT"] = 4] = "SILENT";
})(LogLevel || (LogLevel = {}));
var DEBUG = LogLevel.DEBUG;
var INFO = LogLevel.INFO;
var WARN = LogLevel.WARN;
var ERROR = LogLevel.ERROR;
var SILENT = LogLevel.SILENT;
var LogMode;
(function (LogMode) {
LogMode[LogMode["WEB"] = 0] = "WEB";
LogMode[LogMode["SERVER"] = 1] = "SERVER";
})(LogMode || (LogMode = {}));
var Logger = /*#__PURE__*/function () {
function Logger(logLevel, mode) {
this.logLevel = logLevel;
this.mode = mode;
}
var _proto = Logger.prototype;
_proto.getLevel = function getLevel() {
return this.logLevel;
};
_proto.setLevel = function setLevel(level) {
this.logLevel = level;
};
_proto.doNothing = function doNothing() {// do not log
};
_proto.bindToFunc = function bindToFunc(config) {
var methodName = this.mode === LogMode.WEB ? "%c" + config.name + "%c" : "[" + config.name + "]";
var style = this.mode === LogMode.WEB ? "font-size:10px;background:" + config.background + ";color:white;padding:3px 6px" : "";
return Function.prototype.bind.call(config.method, console, methodName, style, "");
};
_createClass(Logger, [{
key: "debug",
get: function get() {
return this.logLevel <= LogLevel.DEBUG ? this.bindToFunc({
name: "DEBUG",
method: console.log,
background: "rgba(0,0,0,0.1)"
}) : this.doNothing;
}
}, {
key: "info",
get: function get() {
return this.logLevel <= LogLevel.INFO ? this.bindToFunc({
name: "INFO",
method: console.log,
background: "rgba(0,0,0,0.1)"
}) : this.doNothing;
}
}, {
key: "warn",
get: function get() {
return this.logLevel <= LogLevel.WARN ? this.bindToFunc({
name: "WARN",
method: console.warn,
background: "#FB8C00"
}) : this.doNothing;
}
}, {
key: "error",
get: function get() {
return this.logLevel <= LogLevel.ERROR ? this.bindToFunc({
name: "ERROR",
method: console.error,
background: "red"
}) : this.doNothing;
}
}]);
return Logger;
}();
var defaultConfig = {
level: LogLevel.INFO,
mode: LogMode.WEB
};
var nodeConfig = {
level: LogLevel.INFO,
mode: LogMode.SERVER
};
var createLogger = function createLogger(config) {
if (config === void 0) {
config = defaultConfig;
}
return new Logger(config.level, config.mode);
};
var createNodeLogger = function createNodeLogger() {
return new Logger(nodeConfig.level, nodeConfig.mode);
};
export { DEBUG, ERROR, INFO, LogLevel, LogMode, SILENT, WARN, createLogger, createNodeLogger };
//# sourceMappingURL=spartan-logger.esm.js.map