UNPKG

touchdesigner-mcp-server

Version:
44 lines (43 loc) 1.51 kB
/** * MCP compatible logger implementation * Handles "Not connected" errors gracefully */ export class McpLogger { server; constructor(server) { this.server = server; } sendLog(args) { try { this.server.server.sendLoggingMessage({ ...args, }); } catch (error) { // Only swallow the expected "Not connected" error during startup/shutdown if (error instanceof Error && error.message === "Not connected") { return; } // For all other errors, log detailed information to help diagnose logging system failures console.error("CRITICAL: Failed to send log to MCP server. Logging system may be compromised.", { error: error instanceof Error ? error.message : String(error), originalLogger: args.logger, originalLogLevel: args.level, stack: error instanceof Error ? error.stack : undefined, }); } } } /** * Console Logger implementation for standalone use (e.g., HTTP mode setup) * Outputs to stderr to avoid interfering with stdio transport */ export class ConsoleLogger { sendLog(args) { const timestamp = new Date().toISOString(); const level = args.level?.toUpperCase() || "INFO"; const logger = args.logger || "unknown"; const data = args.data; console.error(`[${timestamp}] [${level}] [${logger}] ${data}`); } }