UNPKG

@h1deya/langchain-mcp-tools

Version:
60 lines (59 loc) 2.08 kB
// Simple logger var LogLevel; (function (LogLevel) { LogLevel[LogLevel["TRACE"] = 0] = "TRACE"; LogLevel[LogLevel["DEBUG"] = 1] = "DEBUG"; LogLevel[LogLevel["INFO"] = 2] = "INFO"; LogLevel[LogLevel["WARN"] = 3] = "WARN"; LogLevel[LogLevel["ERROR"] = 4] = "ERROR"; LogLevel[LogLevel["FATAL"] = 5] = "FATAL"; })(LogLevel || (LogLevel = {})); const LOG_COLORS = { [LogLevel.TRACE]: "\x1b[90m", // Gray [LogLevel.DEBUG]: "\x1b[90m", // Gray [LogLevel.INFO]: "\x1b[90m", // Gray [LogLevel.WARN]: "\x1b[1;93m", // Bold bright yellow [LogLevel.ERROR]: "\x1b[1;91m", // Bold bright red [LogLevel.FATAL]: "\x1b[1;101m", // Red background, Bold text }; const LOG_LEVEL_MAP = { trace: LogLevel.TRACE, debug: LogLevel.DEBUG, info: LogLevel.INFO, warn: LogLevel.WARN, error: LogLevel.ERROR, fatal: LogLevel.FATAL }; class Logger { level; static RESET = "\x1b[0m"; constructor({ level = LogLevel.INFO } = {}) { this.level = this.parseLogLevel(level); } parseLogLevel(level) { if (typeof level === "number") return level; return LOG_LEVEL_MAP[level.toLowerCase()]; } log(level, ...args) { if (level < this.level) return; const color = LOG_COLORS[level]; const levelStr = `[${LogLevel[level].toLowerCase()}]`; console.log(`${color}${levelStr}${Logger.RESET}`, ...args.map(this.formatValue)); } formatValue(value) { if (value === null) return "null"; if (value === undefined) return "undefined"; return typeof value === "object" ? JSON.stringify(value, null, 2) : String(value); } trace(...args) { this.log(LogLevel.TRACE, ...args); } debug(...args) { this.log(LogLevel.DEBUG, ...args); } info(...args) { this.log(LogLevel.INFO, ...args); } warn(...args) { this.log(LogLevel.WARN, ...args); } error(...args) { this.log(LogLevel.ERROR, ...args); } fatal(...args) { this.log(LogLevel.FATAL, ...args); } } export { Logger, LogLevel };