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

1.2 KiB
Raw Blame History

ConsoleLogSink::Log

将一条日志格式化后写到 stdout

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 会在互斥区内串行分发。

示例

using namespace XCEngine::Debug;

LogEntry entry{};
entry.level = LogLevel::Info;
entry.category = LogCategory::General;
entry.message = "Hello from ConsoleLogSink";

ConsoleLogSink sink;
sink.Log(entry);

相关文档