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