requirements-analysis
Version:
简化的需求分析MCP服务 - 基于AI软件工程(优化版)6步流程
61 lines (47 loc) • 1.63 kB
text/typescript
/**
* 简单的日志工具
*/
import { LogLevel, LogEntry } from '../types';
export class Logger {
private logs: LogEntry[] = [];
log(level: LogLevel, message: string, sessionId?: string, stepNumber?: number, data?: any): void {
const entry: LogEntry = {
level,
message,
timestamp: new Date(),
sessionId,
stepNumber,
data
};
this.logs.push(entry);
// 控制台输出
const timestamp = entry.timestamp.toISOString();
const prefix = sessionId ? `[${sessionId.slice(0, 8)}]` : '';
const stepPrefix = stepNumber ? `[Step${stepNumber}]` : '';
console.log(`${timestamp} [${level.toUpperCase()}] ${prefix}${stepPrefix} ${message}`);
if (data) {
console.log(' Data:', JSON.stringify(data, null, 2));
}
}
debug(message: string, sessionId?: string, stepNumber?: number, data?: any): void {
this.log('debug', message, sessionId, stepNumber, data);
}
info(message: string, sessionId?: string, stepNumber?: number, data?: any): void {
this.log('info', message, sessionId, stepNumber, data);
}
warn(message: string, sessionId?: string, stepNumber?: number, data?: any): void {
this.log('warn', message, sessionId, stepNumber, data);
}
error(message: string, sessionId?: string, stepNumber?: number, data?: any): void {
this.log('error', message, sessionId, stepNumber, data);
}
getLogs(sessionId?: string): LogEntry[] {
if (sessionId) {
return this.logs.filter(log => log.sessionId === sessionId);
}
return this.logs;
}
clearLogs(): void {
this.logs = [];
}
}