import { type LogTransport } from '@zhin.js/logger'; import { type DatabaseHost } from '@zhin.js/plugin-runtime'; import type { ConfigDocumentPort, RuntimeConfigDocument } from '@zhin.js/runtime'; /** * Plugin Runtime 系统日志落库(console logs 页数据源,对齐 legacy * packages/im/zhin/src/log-transport.ts 的 DatabaseLogTransport,但面向 * DatabaseHost 而非 legacy Plugin inject)。 * * - 表在 host.start() 前 define(见 start-command); * - write 只解析格式化行并 fire-and-forget 写库,host 未 started 时静默丢弃; * - 写库失败静默降级,绝不阻塞/炸掉日志路径。 */ export interface SystemLogStoreConfig { /** 最大日志保留天数,默认 7 天 */ readonly maxDays: number; /** 最大日志条数,默认 10000 条 */ readonly maxRecords: number; /** 自动清理间隔(小时),默认 24 小时 */ readonly cleanupInterval: number; } export declare const DEFAULT_SYSTEM_LOG_CONFIG: SystemLogStoreConfig; export declare function mapFormattedLevel(raw: string): 'debug' | 'info' | 'warn' | 'error' | undefined; export declare class SystemLogDatabaseTransport implements LogTransport { private readonly host; private readonly config; private cleanupTimer?; constructor(host: Pick, config?: SystemLogStoreConfig); write(formatted: string): void; /** 启动定时清理(立即执行一次;host 未启动时当次跳过)。 */ startCleanup(): void; stopCleanup(): void; private cleanupOldLogs; } /** * 装配系统日志落库:注册 SystemLog 表 + 给根 logger 挂 transport + 启动清理任务。 * 幂等(按 DatabaseHost 实例去重);表 define 必须在 host.start() 之前。 */ export declare function installSystemLogStore(host: DatabaseHost, config?: SystemLogStoreConfig): void; /** 从 Runtime 配置文档读取 `log.*` 清理策略(对齐 legacy AppConfig.log),缺省用默认值。 */ export declare function resolveSystemLogConfig(config: RuntimeConfigDocument | ConfigDocumentPort): Promise; //# sourceMappingURL=log-transport.d.ts.map