UNPKG

route-claudecode

Version:

Advanced routing and transformation system for Claude Code outputs to multiple AI providers

78 lines 3.12 kB
"use strict"; /** * 日志管理器 - 全局日志实例管理 * 提供单例模式的日志器管理 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.UnifiedLogger = exports.loggerManager = void 0; exports.getLogger = getLogger; exports.setDefaultPort = setDefaultPort; const unified_logger_1 = require("./unified-logger"); Object.defineProperty(exports, "UnifiedLogger", { enumerable: true, get: function () { return unified_logger_1.UnifiedLogger; } }); class LoggerManager { loggers = new Map(); defaultPort = null; // 🔧 修复硬编码:不设置默认端口,强制明确指定 getLogger(port) { // 🔧 零硬编码原则:必须明确指定端口,不允许fallback if (!port && !this.defaultPort) { throw new Error('Port must be explicitly specified - no hardcoded defaults allowed. Use setDefaultPort() first or provide port parameter.'); } const targetPort = port || this.defaultPort; if (!this.loggers.has(targetPort)) { // 环境变量和命令行参数控制的调试配置 const isDebugMode = process.env.RCC_DEBUG === 'true' || process.env.DEBUG === 'true' || process.argv.includes('--debug'); const isVerboseMode = process.env.RCC_VERBOSE === 'true' || process.argv.includes('--verbose'); // 调试信息:记录logger创建 if (isDebugMode) { console.log(`[LoggerManager] Creating logger for port ${targetPort} (requested: ${port}, default: ${this.defaultPort})`); } const logger = new unified_logger_1.UnifiedLogger({ port: targetPort, logLevel: isVerboseMode ? 'debug' : (isDebugMode ? 'debug' : 'info'), // debug模式使用debug级别 enableConsole: isDebugMode || isVerboseMode, enableFile: true }); this.loggers.set(targetPort, logger); } return this.loggers.get(targetPort); } setDefaultPort(port) { this.defaultPort = port; } hasLogger(port) { return this.loggers.has(port); } async removeLogger(port) { const logger = this.loggers.get(port); if (logger) { await logger.shutdown(); this.loggers.delete(port); } } getActivePorts() { return Array.from(this.loggers.keys()); } async cleanupAll() { const promises = Array.from(this.loggers.values()).map(logger => logger.cleanup()); await Promise.all(promises); } async shutdownAll() { const promises = Array.from(this.loggers.values()).map(logger => logger.shutdown()); await Promise.all(promises); this.loggers.clear(); } } // 全局单例 const loggerManager = new LoggerManager(); exports.loggerManager = loggerManager; // 导出便捷函数 function getLogger(port) { return loggerManager.getLogger(port); } function setDefaultPort(port) { loggerManager.setDefaultPort(port); } //# sourceMappingURL=logger-manager.js.map