docs: rebuild Debug API content
This commit is contained in:
@@ -1,31 +1,51 @@
|
||||
# FileLogSink::Log
|
||||
|
||||
公开方法,详见头文件声明。
|
||||
将日志条目写入文件,并在失败时回退到 `stderr`。
|
||||
|
||||
```cpp
|
||||
void Log(const LogEntry& entry) override;
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Debug/FileLogSink.h`,当前页面用于固定 `FileLogSink` 类目录下的方法级 canonical 路径。
|
||||
## 行为说明
|
||||
|
||||
**参数:**
|
||||
- `entry` - 参数语义详见头文件声明。
|
||||
当前实现流程如下:
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
1. 如果文件未打开,先尝试按保存的路径重新打开。
|
||||
2. 如果打开失败,把错误和原始日志写到 `stderr`,然后返回。
|
||||
3. 把 `entry.timestamp` 按本地时间格式化为 `YYYY-MM-DD HH:MM:SS`。
|
||||
4. 以 `[时间] [级别] [分类] message` 的形式写入文件。
|
||||
5. 写入后立即 `Flush`。
|
||||
|
||||
**示例:**
|
||||
当前不会写入:
|
||||
|
||||
- `file`
|
||||
- `line`
|
||||
- `function`
|
||||
- `threadId`
|
||||
|
||||
## 参数
|
||||
|
||||
- `entry` - 待落盘的日志条目。
|
||||
|
||||
## 返回值
|
||||
|
||||
- 无。
|
||||
|
||||
## 线程语义
|
||||
|
||||
- sink 自身无锁。
|
||||
- 通过 `Logger` 分发时为串行调用。
|
||||
|
||||
## 示例
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Debug/FileLogSink.h>
|
||||
using namespace XCEngine::Debug;
|
||||
|
||||
void Example() {
|
||||
XCEngine::Debug::FileLogSink object;
|
||||
// 根据上下文补齐参数后调用 FileLogSink::Log(...)。
|
||||
(void)object;
|
||||
}
|
||||
Logger::Get().AddSink(std::make_unique<FileLogSink>("runtime.log"));
|
||||
Logger::Get().Info(LogCategory::General, "Runtime started");
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](FileLogSink.md)
|
||||
- [返回模块目录](../Debug.md)
|
||||
- [返回类型总览](FileLogSink.md)
|
||||
- [Flush](Flush.md)
|
||||
|
||||
Reference in New Issue
Block a user