// --- src/monitoring/logger.ts ---

/**
 * @interface ILogger
 * @description 日志记录器接口
 */
export interface ILogger {
  debug(message: string, meta?: any): void;
  info(message: string, meta?: any): void;
  warn(message: string, meta?: any): void;
  error(message: string, error?: Error, meta?: any): void;
}

/**
 * MARK: 控制台日志记录器
 * @class ConsoleLogger
 * @implements ILogger
 * @description 简单的控制台日志记录器 (示例)
 */
export class ConsoleLogger implements ILogger {
  private contextPrefix: string;

  constructor(contextPrefix: string = '[FlowLab]') {
      this.contextPrefix = contextPrefix;
  }

  debug(message: string, meta?: any): void {
      console.debug(`${this.contextPrefix}[DEBUG] ${message}`, meta ?? '');
  }
  info(message: string, meta?: any): void {
      console.info(`${this.contextPrefix}[INFO] ${message}`, meta ?? '');
  }
  warn(message: string, meta?: any): void {
      console.warn(`${this.contextPrefix}[WARN] ${message}`, meta ?? '');
  }
  error(message: string, error?: Error, meta?: any): void {
      console.error(`${this.contextPrefix}[ERROR] ${message}`, error ?? '', meta ?? '');
  }
}