@just-every/mcp-read-website-fast
Version:
Markdown Content Preprocessor - Fetch web pages, extract content, convert to clean Markdown
59 lines (58 loc) • 1.81 kB
JavaScript
export 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 || (LogLevel = {}));
export class Logger {
level;
name;
quiet;
constructor(name, level = LogLevel.INFO) {
this.name = name;
this.level = level;
this.quiet =
process.env.MCP_QUIET === 'true' ||
(!process.env.MCP_DEBUG && this.name === 'MCP');
}
log(level, message, ...args) {
if (level > this.level)
return;
if (this.quiet && level !== LogLevel.ERROR)
return;
const timestamp = new Date().toISOString();
const levelName = LogLevel[level];
const prefix = `[${timestamp}] [${levelName}] [${this.name}]`;
switch (level) {
case LogLevel.ERROR:
console.error(prefix, message, ...args);
break;
case LogLevel.WARN:
console.error(prefix, message, ...args);
break;
default:
console.error(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);
}
setLevel(level) {
this.level = level;
}
}
export const logger = new Logger('MCP');
const envLevel = process.env.LOG_LEVEL?.toUpperCase();
if (envLevel && envLevel in LogLevel) {
logger.setLevel(LogLevel[envLevel]);
}