import winston from 'winston'; import { type EffectiveFileConfig, type NormalizedLoggerConfig } from '../core/model'; import type { DiagnosticWriter } from '../core/diagnostics'; /** 日志工厂关闭时需要同时访问 Winston 实例和传输列表,因此将两者作为只读运行时快照返回。 */ export interface WinstonRuntime { readonly logger: winston.Logger; readonly transports: readonly winston.transport[]; } /** * 为轮转设置生成稳定标识,使多个命名日志器可以安全复用完全相同的文件目标。 * * @param file 已归一化的文件传输配置。 * @returns 覆盖物理目标和轮转策略的稳定键。 * @throws 不主动抛出异常。 */ export declare function fileSinkKey(file: EffectiveFileConfig): string; /** * 创建共享 Winston 运行时,避免每个命名日志器重复占用文件句柄并分散进程错误处理。 * * 详细设计: * 1. 汇总根与命名日志器策略,先校验并去重文件目标,再为使用纯文本格式的策略预编译模板。 * 2. 控制台只创建一个共享传输;文件按完整轮转键各创建一个传输,格式器依据隐藏的日志器策略完成逐条路由。 * 3. 只有根传输接管进程级异常和拒绝,所有 logger/transport 错误统一转入独立诊断通道,避免递归写日志。 * 4. 返回冻结的传输快照供关闭流程同时观察 Winston finish 与底层文件流 close。 * * @param config 已校验和归一化的完整日志配置。 * @param diagnostics 独立于主日志链路的诊断写入器。 * @returns 包含 Winston 日志器与只读传输列表的运行时快照。 * @throws {LoggerConfigError} 当文件目标使用冲突策略时抛出。 * @throws 当 Winston 或文件传输无法按配置初始化时透传异常。 */ export declare function createWinstonRuntime(config: NormalizedLoggerConfig, diagnostics: DiagnosticWriter): WinstonRuntime; //# sourceMappingURL=TransportFactory.d.ts.map