logger.js•1.36 kB
/**
* 简单的日志工具类
*/
export class Logger {
constructor(name = 'MCP') {
this.name = name;
this.logLevel = process.env.LOG_LEVEL || 'info';
}
/**
* 格式化日志消息
*/
formatMessage(level, message, data = null) {
const timestamp = new Date().toISOString();
const prefix = `[${timestamp}] [${this.name}] [${level.toUpperCase()}]`;
if (data) {
return `${prefix} ${message} ${JSON.stringify(data, null, 2)}`;
}
return `${prefix} ${message}`;
}
/**
* 检查是否应该记录该级别的日志
*/
shouldLog(level) {
const levels = { error: 0, warn: 1, info: 2, debug: 3 };
return levels[level] <= levels[this.logLevel];
}
error(message, data = null) {
if (this.shouldLog('error')) {
console.error(this.formatMessage('error', message, data));
}
}
warn(message, data = null) {
if (this.shouldLog('warn')) {
console.warn(this.formatMessage('warn', message, data));
}
}
info(message, data = null) {
if (this.shouldLog('info')) {
console.log(this.formatMessage('info', message, data));
}
}
debug(message, data = null) {
if (this.shouldLog('debug')) {
console.log(this.formatMessage('debug', message, data));
}
}
}
// 创建默认日志实例
export const logger = new Logger('GitLab-WeChat-MCP');