1.6 KiB
1.6 KiB
ILogSink
命名空间: XCEngine::Debug
类型: class (abstract)
头文件: XCEngine/Debug/ILogSink.h
描述: 定义日志输出目标的最小接口。
概述
ILogSink 把“日志生产”与“日志落地”分离开来。Logger 只负责构造 LogEntry、做全局过滤并分发,而真正的输出策略交给 sink 实现决定。
这类接口的意义在于:
- 可以同时输出到控制台、文件、编辑器面板或远程通道。
- 不需要让业务模块直接依赖具体输出媒介。
- 便于在测试中插入自定义 sink 验证日志行为。
契约
- Log 必须接收一条已经构造好的
LogEntry并执行输出。 - Flush 用于把 sink 内部缓冲显式落地。
- Destructor 必须为虚析构,以便通过基类指针安全释放派生对象。
线程语义
ILogSink不承诺任何线程安全保证。- 具体线程语义由实现类与调用方共同决定。
- 在 XCEngine 当前实现中,
Logger会在互斥区内调用 sink,因此“通过Logger分发”是串行的。
已知实现
公开方法
| 方法 | 说明 |
|---|---|
| Destructor | 虚析构函数。 |
| Log | 输出一条日志记录。 |
| Flush | 刷新 sink 内部缓冲。 |