UNPKG

requirements-analysis

Version:

简化的需求分析MCP服务 - 基于AI软件工程(优化版)6步流程

61 lines (47 loc) 1.63 kB
/** * 简单的日志工具 */ 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 = []; } }