# FileLogSink::Log 将日志条目写入文件,并在失败时回退到 `stderr`。 ```cpp 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` 分发时为串行调用。 ## 示例 ```cpp using namespace XCEngine::Debug; Logger::Get().AddSink(std::make_unique("runtime.log")); Logger::Get().Info(LogCategory::General, "Runtime started"); ``` ## 相关文档 - [返回类型总览](FileLogSink.md) - [Flush](Flush.md)