{"version":3,"sources":["../src/utils/logger.ts"],"sourcesContent":["import { createConsola } from 'consola';\nimport type { ConsolaInstance, LogLevel } from 'consola';\nimport { DEFAULT_LOG_LEVEL } from './defaults';\n\n/**\n * 日志级别映射\n * 将字符串日志级别映射到数字级别\n */\nconst LOG_LEVELS: Record<string, LogLevel> = {\n  'silent': 0,  // 不输出任何日志\n  'fatal': 1,   // 只输出致命错误\n  'error': 2,   // 输出错误信息\n  'warn': 3,    // 输出警告和错误信息\n  'info': 4,    // 输出重要信息、警告和错误（默认级别）\n  'success': 4, // 与 info 同级\n  'debug': 5,   // 输出调试信息和 info 级别以上的日志\n  'trace': 6,   // 输出跟踪信息和 debug 级别以上的日志\n  'verbose': 6  // 与 trace 同级\n};\n\n/**\n * 日志管理器配置接口\n * 定义创建日志管理器时可以设置的选项\n */\nexport interface LoggerOptions {\n  prefix?: string;                // 日志前缀\n  level?: LogLevel | string;      // 日志级别\n  timestamps?: boolean;           // 是否显示时间戳\n  mockFn?: (...args: any[]) => void; // 用于测试的模拟函数\n}\n\n/**\n * 创建一个日志管理器实例\n * @param options 日志管理器配置选项\n * @returns 配置好的 Consola 实例\n */\nexport function createLogger(options: LoggerOptions = {}): ConsolaInstance {\n  // 从环境变量获取日志级别，使用默认值\n  const envLogLevel = process.env.LOG_LEVEL || process.env.LANE_LOG_LEVEL || DEFAULT_LOG_LEVEL;\n\n  // 确定最终日志级别\n  let level: LogLevel = 4; // 默认为 info 级别\n\n  if (typeof options.level === 'number') {\n    // 如果直接提供了数字级别\n    level = options.level;\n  } else if (typeof options.level === 'string' && LOG_LEVELS[options.level.toLowerCase()] !== undefined) {\n    // 如果提供了字符串级别并且它在映射中存在\n    level = LOG_LEVELS[options.level.toLowerCase()];\n  } else if (LOG_LEVELS[envLogLevel.toLowerCase()] !== undefined) {\n    // 如果环境变量中的级别在映射中存在\n    level = LOG_LEVELS[envLogLevel.toLowerCase()];\n  }\n\n  // 创建 consola 实例\n  const logger = createConsola({\n    level,\n    formatOptions: {\n      date: options.timestamps !== false, // 默认显示时间戳\n      colors: true, // 启用颜色\n    },\n  });\n\n  // 如果提供了前缀，创建一个带前缀的 logger\n  if (options.prefix) {\n    return logger.withTag(options.prefix);\n  }\n\n  return logger;\n}\n\n/**\n * 默认日志管理器实例\n * 使用 '泳道管理' 作为前缀\n */\nexport const logger = createLogger({ prefix: '泳道管理' });\n\n/**\n * 导出日志级别常量\n * 可以用于设置日志级别\n */\nexport const LogLevels = LOG_LEVELS;\n"],"mappings":";;;;;AAAA,SAAS,qBAAqB;AAQ9B,IAAM,aAAuC;AAAA,EAC3C,UAAU;AAAA;AAAA,EACV,SAAS;AAAA;AAAA,EACT,SAAS;AAAA;AAAA,EACT,QAAQ;AAAA;AAAA,EACR,QAAQ;AAAA;AAAA,EACR,WAAW;AAAA;AAAA,EACX,SAAS;AAAA;AAAA,EACT,SAAS;AAAA;AAAA,EACT,WAAW;AAAA;AACb;AAkBO,SAAS,aAAa,UAAyB,CAAC,GAAoB;AAEzE,QAAM,cAAc,QAAQ,IAAI,aAAa,QAAQ,IAAI,kBAAkB;AAG3E,MAAI,QAAkB;AAEtB,MAAI,OAAO,QAAQ,UAAU,UAAU;AAErC,YAAQ,QAAQ;AAAA,EAClB,WAAW,OAAO,QAAQ,UAAU,YAAY,WAAW,QAAQ,MAAM,YAAY,CAAC,MAAM,QAAW;AAErG,YAAQ,WAAW,QAAQ,MAAM,YAAY,CAAC;AAAA,EAChD,WAAW,WAAW,YAAY,YAAY,CAAC,MAAM,QAAW;AAE9D,YAAQ,WAAW,YAAY,YAAY,CAAC;AAAA,EAC9C;AAGA,QAAMA,UAAS,cAAc;AAAA,IAC3B;AAAA,IACA,eAAe;AAAA,MACb,MAAM,QAAQ,eAAe;AAAA;AAAA,MAC7B,QAAQ;AAAA;AAAA,IACV;AAAA,EACF,CAAC;AAGD,MAAI,QAAQ,QAAQ;AAClB,WAAOA,QAAO,QAAQ,QAAQ,MAAM;AAAA,EACtC;AAEA,SAAOA;AACT;AAMO,IAAM,SAAS,aAAa,EAAE,QAAQ,2BAAO,CAAC;AAM9C,IAAM,YAAY;","names":["logger"]}