2.1 KiB
2.1 KiB
ConsoleLogSink
命名空间: XCEngine::Debug
类型: class
头文件: XCEngine/Debug/ConsoleLogSink.h
描述: 将日志输出到标准输出流,并在 Windows 上按级别着色。
概述
ConsoleLogSink 是最直接的调试输出目标,适合测试程序、命令行工具和开发期编辑器启动日志。它本身只关心“如何写到控制台”,不过滤 category,也不处理文件、函数名和时间戳格式化以外的元数据。
当前实现中的关键行为:
- 日志格式固定为
[LEVEL] [Category] message。 - 颜色输出只在
_WIN32下生效;其它平台仍会输出文本,但不会着色。 - sink 自身维护一个最小级别阈值,可在
Logger的全局过滤之后再做一次本地过滤。
生命周期
- Constructor 创建 sink,默认开启颜色输出,最小级别为
Verbose。 - Destructor 无额外资源释放逻辑。
- Flush 手动刷新
stdout。
线程语义
ConsoleLogSink自身没有加锁。- 通过
Logger调用时,实际输出发生在Logger的互斥区内,因此同一时刻只会有一个 sink 调用进入。 - 如果绕过
Logger直接从多个线程调用Log,线程安全由调用方自己保证。
公开方法
| 方法 | 说明 |
|---|---|
| Constructor | 构造一个控制台日志 sink。 |
| Destructor | 析构 sink。 |
| Log | 将一条日志格式化写入 stdout。 |
| Flush | 刷新 stdout。 |
| SetColorOutput | 开关 Windows 控制台颜色。 |
| SetMinimumLevel | 设置 sink 级别阈值。 |
适用场景
- 单元测试与集成测试的即时输出。
- 编辑器或工具进程启动阶段的可见日志。
- 临时调试某个后端时,为
Logger追加一个低成本输出目标。