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

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