UNPKG

@just-every/mcp-screenshot-website-fast

Version:

Fast screenshot capture tool for web pages - optimized for Claude Vision API

56 lines (55 loc) 1.6 kB
export var LogLevel; (function (LogLevel) { LogLevel[LogLevel["OFF"] = -1] = "OFF"; LogLevel[LogLevel["ERROR"] = 0] = "ERROR"; LogLevel[LogLevel["WARN"] = 1] = "WARN"; LogLevel[LogLevel["INFO"] = 2] = "INFO"; LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG"; })(LogLevel || (LogLevel = {})); export class Logger { level; name; constructor(name, level = LogLevel.ERROR) { this.name = name; this.level = level; } log(level, message, ...args) { if (level > this.level) return; const timestamp = new Date().toISOString(); const levelName = LogLevel[level]; const prefix = `[${timestamp}] [${levelName}] [${this.name}]`; console.error(prefix, message, ...args); if (!process.stderr.isTTY && process.stderr.write) { process.stderr.write(''); } } 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); } setLevel(level) { this.level = level; } } export const logger = new Logger('MCP'); const envLevel = process.env.LOG_LEVEL?.toUpperCase(); if (envLevel) { if (envLevel === 'OFF') { logger.setLevel(LogLevel.OFF); } else if (envLevel in LogLevel) { logger.setLevel(LogLevel[envLevel]); } } else { logger.setLevel(LogLevel.OFF); }