UNPKG

@thoughtspot/visual-embed-sdk

Version:
73 lines 2.13 kB
import { isUndefined } from '../utils'; import { LogLevel } from '../types'; const logFunctions = { [LogLevel.SILENT]: () => undefined, [LogLevel.ERROR]: console.error, [LogLevel.WARN]: console.warn, [LogLevel.INFO]: console.info, [LogLevel.DEBUG]: console.debug, [LogLevel.TRACE]: console.trace, }; let globalLogLevelOverride = LogLevel.TRACE; const setGlobalLogLevelOverride = (logLevel) => { globalLogLevelOverride = logLevel; }; const logLevelToNumber = { [LogLevel.SILENT]: 0, [LogLevel.ERROR]: 1, [LogLevel.WARN]: 2, [LogLevel.INFO]: 3, [LogLevel.DEBUG]: 4, [LogLevel.TRACE]: 5, }; const compareLogLevels = (logLevel1, logLevel2) => { const logLevel1Index = logLevelToNumber[logLevel1]; const logLevel2Index = logLevelToNumber[logLevel2]; return logLevel1Index - logLevel2Index; }; class Logger { constructor() { this.logLevel = LogLevel.ERROR; this.setLogLevel = (newLogLevel) => { this.logLevel = newLogLevel; }; this.getLogLevel = () => this.logLevel; } canLog(logLevel) { if (logLevel === LogLevel.SILENT) return false; if (!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, LogLevel.INFO); } debug(...args) { this.logMessages(args, LogLevel.DEBUG); } trace(...args) { this.logMessages(args, LogLevel.TRACE); } error(...args) { this.logMessages(args, LogLevel.ERROR); } warn(...args) { this.logMessages(args, LogLevel.WARN); } } const logger = new Logger(); export { LogLevel, logger, setGlobalLogLevelOverride }; //# sourceMappingURL=logger.js.map