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

1012 B

FileLogSink::Log

将日志条目写入文件,并在失败时回退到 stderr

void Log(const LogEntry& entry) override;

行为说明

当前实现流程如下:

  1. 如果文件未打开,先尝试按保存的路径重新打开。
  2. 如果打开失败,把错误和原始日志写到 stderr,然后返回。
  3. entry.timestamp 按本地时间格式化为 YYYY-MM-DD HH:MM:SS
  4. [时间] [级别] [分类] message 的形式写入文件。
  5. 写入后立即 Flush

当前不会写入:

  • file
  • line
  • function
  • threadId

参数

  • entry - 待落盘的日志条目。

返回值

  • 无。

线程语义

  • sink 自身无锁。
  • 通过 Logger 分发时为串行调用。

示例

using namespace XCEngine::Debug;

Logger::Get().AddSink(std::make_unique<FileLogSink>("runtime.log"));
Logger::Get().Info(LogCategory::General, "Runtime started");

相关文档