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

52 lines
1012 B
Markdown

# 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<FileLogSink>("runtime.log"));
Logger::Get().Info(LogCategory::General, "Runtime started");
```
## 相关文档
- [返回类型总览](FileLogSink.md)
- [Flush](Flush.md)