/**
 * Logger工具类，提供统一的日志记录功能
 */
export class Logger {
  private static readonly TAG: string = 'AppLogger'

  /**
   * 记录方法调用日志
   * @param className 类名
   * @param methodName 方法名
   */
  static logMethodCall(className: string, methodName: string): void {
    console.info(`[${Logger.TAG}] ${className}.${methodName}() called`)
  }

  /**
   * 记录信息级别日志
   * @param tag 日志标签
   * @param message 日志消息
   */
  static info(tag: string, message: string): void {
    console.info(`[${Logger.TAG}] [${tag}] INFO: ${message}`)
  }

  /**
   * 记录错误级别日志
   * @param tag 日志标签
   * @param error 错误对象或消息
   * @param message 错误描述
   */
  static logError(tag: string, error: object, message: string): void {
    console.error(`[${Logger.TAG}] [${tag}] ERROR: ${message}`, error)
  }

  /**
   * 记录错误级别日志（兼容性方法）
   * @param tag 日志标签
   * @param message 日志消息
   */
  static error(tag: string, message: string): void {
    console.error(`[${Logger.TAG}] [${tag}] ERROR: ${message}`)
  }

  /**
   * 记录调试级别日志
   * @param tag 日志标签
   * @param message 日志消息
   */
  static debug(tag: string, message: string): void {
    console.debug(`[${Logger.TAG}] [${tag}] DEBUG: ${message}`)
  }

  /**
   * 记录警告级别日志
   * @param tag 日志标签
   * @param message 日志消息
   */
  static warn(tag: string, message: string): void {
    console.warn(`[${Logger.TAG}] [${tag}] WARN: ${message}`)
  }
}