40 lines
1.6 KiB
Markdown
40 lines
1.6 KiB
Markdown
# LogEntry
|
||
|
||
**命名空间**: `XCEngine::Debug`
|
||
|
||
**类型**: `struct`
|
||
|
||
**头文件**: `XCEngine/Debug/LogEntry.h`
|
||
|
||
**描述**: 承载单条日志记录的结构体。
|
||
|
||
## 概述
|
||
|
||
`LogEntry` 是 `Logger` 与各类 sink 之间传递日志数据的统一载体。调用方通常不会手动构造它,而是通过 `Logger::Log` 或便捷方法间接生成;sink 实现则读取其中的字段决定如何格式化输出。
|
||
|
||
## 字段说明
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `level` | `LogLevel` | 日志严重级别。 |
|
||
| `category` | `LogCategory` | 日志功能域。 |
|
||
| `message` | `Containers::String` | 最终日志文本。 |
|
||
| `file` | `Containers::String` | 源文件路径;只有显式传入时才有值。 |
|
||
| `line` | `int32_t` | 源码行号;便捷方法通常保留为 `0`。 |
|
||
| `function` | `Containers::String` | 源函数名;只有显式传入时才有值。 |
|
||
| `timestamp` | `uint64_t` | 当前实现中为 Unix epoch 秒数。 |
|
||
| `threadId` | `uint32_t` | 当前实现中为 `std::thread::id` 哈希后的 32 位值。 |
|
||
|
||
## 当前实现说明
|
||
|
||
- `Logger::Log` 会为 `timestamp` 与 `threadId` 自动填值。
|
||
- `Logger::Verbose`、`Info` 等便捷方法调用的是带默认参数的 `Log`,因此默认不会填充 `file`、`line` 和 `function`。
|
||
- 如果希望保留源码位置,推荐使用 `XE_LOG` 宏而不是直接调用这些便捷方法。
|
||
|
||
## 相关文档
|
||
|
||
- [当前模块](../Debug.md)
|
||
- [Logger](../Logger/Logger.md)
|
||
- [ILogSink](../ILogSink/ILogSink.md)
|
||
- [Logging Architecture](../../../_guides/Debug/Logging-Architecture.md)
|