UNPKG

multi-lane-manager

Version:

Nacos 泳道管理与请求路由组件

1 lines 3.67 kB
{"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"]}