Files
XCEngine/docs/api/XCEngine/Debug/ILogSink/ILogSink.md

51 lines
1.6 KiB
Markdown
Raw Blame History

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