@wildcard-ai/deepcodex
Version:
Advanced codebase indexing and semantic search MCP server
47 lines • 1.56 kB
JavaScript
/**
* Logger - Simple logging utility for MCP server
*/
export class Logger {
level;
prefix;
constructor(prefix = 'MCP', level = 'info') {
this.prefix = prefix;
this.level = level;
}
shouldLog(level) {
const levels = ['debug', 'info', 'warn', 'error'];
return levels.indexOf(level) >= levels.indexOf(this.level);
}
formatMessage(level, message, ...args) {
const timestamp = new Date().toISOString();
const formatted = args.length > 0 ? `${message} ${args.map(a => JSON.stringify(a)).join(' ')}` : message;
return `[${timestamp}] [${this.prefix}] [${level.toUpperCase()}] ${formatted}`;
}
debug(message, ...args) {
if (this.shouldLog('debug')) {
process.stderr.write(this.formatMessage('debug', message, ...args) + '\n');
}
}
info(message, ...args) {
if (this.shouldLog('info')) {
process.stderr.write(this.formatMessage('info', message, ...args) + '\n');
}
}
warn(message, ...args) {
if (this.shouldLog('warn')) {
process.stderr.write(this.formatMessage('warn', message, ...args) + '\n');
}
}
error(message, ...args) {
if (this.shouldLog('error')) {
process.stderr.write(this.formatMessage('error', message, ...args) + '\n');
}
}
setLevel(level) {
this.level = level;
}
createChild(childPrefix) {
return new Logger(`${this.prefix}:${childPrefix}`, this.level);
}
}
//# sourceMappingURL=Logger.js.map