@thoughtspot/visual-embed-sdk
Version:
ThoughtSpot Embed SDK
78 lines • 2.6 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.setGlobalLogLevelOverride = exports.logger = exports.LogLevel = void 0;
const utils_1 = require("../utils");
const types_1 = require("../types");
Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return types_1.LogLevel; } });
const logFunctions = {
[types_1.LogLevel.SILENT]: () => undefined,
[types_1.LogLevel.ERROR]: console.error,
[types_1.LogLevel.WARN]: console.warn,
[types_1.LogLevel.INFO]: console.info,
[types_1.LogLevel.DEBUG]: console.debug,
[types_1.LogLevel.TRACE]: console.trace,
};
let globalLogLevelOverride = types_1.LogLevel.TRACE;
const setGlobalLogLevelOverride = (logLevel) => {
globalLogLevelOverride = logLevel;
};
exports.setGlobalLogLevelOverride = setGlobalLogLevelOverride;
const logLevelToNumber = {
[types_1.LogLevel.SILENT]: 0,
[types_1.LogLevel.ERROR]: 1,
[types_1.LogLevel.WARN]: 2,
[types_1.LogLevel.INFO]: 3,
[types_1.LogLevel.DEBUG]: 4,
[types_1.LogLevel.TRACE]: 5,
};
const compareLogLevels = (logLevel1, logLevel2) => {
const logLevel1Index = logLevelToNumber[logLevel1];
const logLevel2Index = logLevelToNumber[logLevel2];
return logLevel1Index - logLevel2Index;
};
class Logger {
constructor() {
this.logLevel = types_1.LogLevel.ERROR;
this.setLogLevel = (newLogLevel) => {
this.logLevel = newLogLevel;
};
this.getLogLevel = () => this.logLevel;
}
canLog(logLevel) {
if (logLevel === types_1.LogLevel.SILENT)
return false;
if (!(0, utils_1.isUndefined)(globalLogLevelOverride)) {
return compareLogLevels(globalLogLevelOverride, logLevel) >= 0;
}
return compareLogLevels(this.logLevel, logLevel) >= 0;
}
logMessages(args, logLevel) {
if (this.canLog(logLevel)) {
const logFn = logFunctions[logLevel];
if (logFn) {
logFn(...args);
}
}
}
log(...args) {
this.info(args);
}
info(...args) {
this.logMessages(args, types_1.LogLevel.INFO);
}
debug(...args) {
this.logMessages(args, types_1.LogLevel.DEBUG);
}
trace(...args) {
this.logMessages(args, types_1.LogLevel.TRACE);
}
error(...args) {
this.logMessages(args, types_1.LogLevel.ERROR);
}
warn(...args) {
this.logMessages(args, types_1.LogLevel.WARN);
}
}
const logger = new Logger();
exports.logger = logger;
//# sourceMappingURL=logger.js.map
;