UNPKG

mira-app-server

Version:

Mira Server - standalone server application using mira-app-core

39 lines 1.53 kB
/** * LogRingBuffer —— 进程内的日志环形缓冲。 * * 后端使用裸 `console.log` / `console.error`,没有日志库。为了让 SSE 日志端点 * (`GET /api/logs/stream`)能向新连接的客户端回放「最近 100 条」历史日志, * 我们在进程内维护一个固定容量的环形缓冲:每条日志带时间戳与级别,订阅者可 * 实时收到新增日志。 * * 设计要点: * - 单例(`logRingBuffer`),全进程共享 * - `push` 超容量时丢弃最旧条目(FIFO) * - `subscribe` 返回反订阅函数,便于 SSE 连接关闭时清理 */ export type LogLevel = 'log' | 'error' | 'warn'; export interface LogEntry { /** ISO 时间戳 */ timestamp: string; level: LogLevel; /** 单行日志文本(多行 console 入参已 join) */ line: string; } export type LogSubscriber = (entry: LogEntry) => void; export declare class LogRingBuffer { private readonly capacity; private buffer; private readonly subscribers; constructor(capacity?: number); /** 追加一条日志并通知订阅者 */ push(level: LogLevel, args: unknown[]): void; /** 返回当前缓冲区快照(按时间正序) */ recent(): LogEntry[]; /** 订阅新增日志,返回反订阅函数 */ subscribe(fn: LogSubscriber): () => void; /** 当前条目数(测试 / 诊断用) */ size(): number; } /** 全进程共享单例 */ export declare const logRingBuffer: LogRingBuffer; //# sourceMappingURL=LogRingBuffer.d.ts.map