repo_description: ✨ Light and Fast AI Assistant. Support: Web | iOS | MacOS | Android |  Linux | Windows
repo_topics: calclaude chatgpt claude cross-platform desktop fe gemini gemini-pro gemini-server gemini-ultra gpt-4o groq nextjs ollama react tauri tauri-app vercel webui
code: // ANSI color codes for terminal output
  const colors = {
    reset: "\x1b[0m",
    bright: "\x1b[1m",
    dim: "\x1b[2m",
    green: "\x1b[32m",
    yellow: "\x1b[33m",
    red: "\x1b[31m",
    blue: "\x1b[34m",
  };
  
  export class MCPClientLogger {
    private readonly prefix: string;
    private readonly debugMode: boolean;
  
    constructor(
      prefix: string = "NextChat MCP Client",
      debugMode: boolean = false,
    ) {
      this.prefix = prefix;
      this.debugMode = debugMode;
    }
  
    info(message: any) {
      this.print(colors.blue, message);
    }
  
    success(message: any) {
      this.print(colors.green, message);
    }
  
    error(message: any) {
      this.print(colors.red, message);
    }
  
    warn(message: any) {
      this.print(colors.yellow, message);
    }
  
    debug(message: any) {
      if (this.debugMode) {
        this.print(colors.dim, message);
      }
    }
  
    /**
     * Format message to string, if message is object, convert to JSON string
     */
    private formatMessage(message: any): string {
      return typeof message === "object"
        ? JSON.stringify(message, null, 2)
        : message;
    }
  
    /**
     * Print formatted message to console
     */
    private print(color: string, message: any) {
      const formattedMessage = this.formatMessage(message);
      const logMessage = `${color}${colors.bright}[${this.prefix}]${colors.reset} ${formattedMessage}`;
  
      // 只使用 console.log，这样日志会显示在 Tauri 的终端中
      console.log(logMessage);
    }
  }
  