1012 B
1012 B
FileLogSink::Log
将日志条目写入文件,并在失败时回退到 stderr。
void Log(const LogEntry& entry) override;
行为说明
当前实现流程如下:
- 如果文件未打开,先尝试按保存的路径重新打开。
- 如果打开失败,把错误和原始日志写到
stderr,然后返回。 - 把
entry.timestamp按本地时间格式化为YYYY-MM-DD HH:MM:SS。 - 以
[时间] [级别] [分类] message的形式写入文件。 - 写入后立即
Flush。
当前不会写入:
filelinefunctionthreadId
参数
entry- 待落盘的日志条目。
返回值
- 无。
线程语义
- sink 自身无锁。
- 通过
Logger分发时为串行调用。
示例
using namespace XCEngine::Debug;
Logger::Get().AddSink(std::make_unique<FileLogSink>("runtime.log"));
Logger::Get().Info(LogCategory::General, "Runtime started");