"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = exports.LogLevel = void 0; var LogLevel; (function (LogLevel) { LogLevel[LogLevel["ERROR"] = 0] = "ERROR"; LogLevel[LogLevel["WARN"] = 1] = "WARN"; LogLevel[LogLevel["INFO"] = 2] = "INFO"; LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG"; })(LogLevel || (exports.LogLevel = LogLevel = {})); class Logger { context; static logLevel = LogLevel.INFO; constructor(context) { this.context = context; } log(level, message, ...args) { if (level > Logger.logLevel) { return; } const timestamp = new Date().toISOString(); const levelStr = LogLevel[level]; const prefix = `[${timestamp}] [${levelStr}] [${this.context}]`; switch (level) { case LogLevel.ERROR: console.error(prefix, message, ...args); break; case LogLevel.WARN: console.warn(prefix, message, ...args); break; default: console.log(prefix, message, ...args); } } error(message, ...args) { this.log(LogLevel.ERROR, message, ...args); } warn(message, ...args) { this.log(LogLevel.WARN, message, ...args); } info(message, ...args) { this.log(LogLevel.INFO, message, ...args); } debug(message, ...args) { this.log(LogLevel.DEBUG, message, ...args); } static setLogLevel(level) { Logger.logLevel = level; } } exports.Logger = Logger; //# sourceMappingURL=logger.js.map