// 统一日志管理工具
// 提供生产环境和开发环境的日志控制

const isDevelopment = import.meta.env.MODE === 'development'

// 日志级别
const LOG_LEVELS = {
  ERROR: 0,
  WARN: 1,
  INFO: 2,
  DEBUG: 3
}

// 当前日志级别（生产环境只显示错误，开发环境显示所有）
const currentLevel = isDevelopment ? LOG_LEVELS.DEBUG : LOG_LEVELS.ERROR

class Logger {
  static error(...args) {
    if (currentLevel >= LOG_LEVELS.ERROR) {
      console.error('[ERROR]', ...args)
    }
  }

  static warn(...args) {
    if (currentLevel >= LOG_LEVELS.WARN) {
      console.warn('[WARN]', ...args)
    }
  }

  static info(...args) {
    if (currentLevel >= LOG_LEVELS.INFO) {
      console.info('[INFO]', ...args)
    }
  }

  static debug(...args) {
    if (currentLevel >= LOG_LEVELS.DEBUG) {
      console.log('[DEBUG]', ...args)
    }
  }

  // 专用于API错误日志
  static apiError(operation, error, context = {}) {
    this.error(`API错误 [${operation}]:`, error, '上下文:', context)
  }

  // 专用于WebSocket错误日志
  static wsError(operation, error, data = null) {
    this.error(`WebSocket错误 [${operation}]:`, error, data && `数据: ${data}`)
  }

  // 专用于回调执行错误
  static callbackError(event, error) {
    this.error(`回调执行失败 [${event}]:`, error)
  }
}

export default Logger