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

59 lines
1.2 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::Log
将一条日志格式化后写到 `stdout`
```cpp
void Log(const LogEntry& entry) override;
```
## 行为说明
当前实现分三步处理:
1. 如果 `entry.level < m_minimumLevel`,直接返回。
2. 在 Windows 且启用颜色输出时,根据 `entry.level` 设置控制台颜色。
3.`[LEVEL] [Category] message` 的固定格式调用 `printf` 输出一行文本,并在 Windows 上恢复默认颜色。
它不会输出:
- 时间戳
- 文件路径
- 行号
- 函数名
- 线程 ID
如果你需要这些元数据,必须实现自己的 sink或者扩展当前 sink 的格式化逻辑。
## 参数
- `entry` - 待输出的日志条目。
## 返回值
- 无。
## 线程语义
- sink 自身不加锁。
- 通过 `Logger` 调用时,`Logger` 会在互斥区内串行分发。
## 示例
```cpp
using namespace XCEngine::Debug;
LogEntry entry{};
entry.level = LogLevel::Info;
entry.category = LogCategory::General;
entry.message = "Hello from ConsoleLogSink";
ConsoleLogSink sink;
sink.Log(entry);
```
## 相关文档
- [返回类型总览](ConsoleLogSink.md)
- [Flush](Flush.md)
- [SetMinimumLevel](SetMinimumLevel.md)