@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
JavaScript
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);
}