| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- // 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);
- }
- }
|