Files
XCEngine/docs/api/XCEngine/Debug/Logger/AddSink.md

44 lines
943 B
Markdown
Raw Normal View History

2026-03-26 16:45:24 +08:00
# Logger::AddSink
2026-03-26 17:21:44 +08:00
把一个日志输出目标注册到全局 `Logger`
2026-03-26 16:45:24 +08:00
```cpp
void AddSink(std::unique_ptr<ILogSink> sink);
```
2026-03-26 17:21:44 +08:00
## 行为说明
2026-03-26 16:45:24 +08:00
2026-03-26 17:21:44 +08:00
当前实现会在互斥区内把 `sink` 移入内部 `std::vector<std::unique_ptr<ILogSink>>`。注册后:
2026-03-26 16:45:24 +08:00
2026-03-26 17:21:44 +08:00
- `Logger` 接管对象生命周期。
- 之后的每次 `Log` 都会把日志分发给该 sink。
- 不会因为未初始化而失败;`AddSink` 本身不依赖 `Initialize`
2026-03-26 16:45:24 +08:00
2026-03-26 17:21:44 +08:00
## 参数
- `sink` - 新的日志输出目标,所有权会转移给 `Logger`
## 返回值
- 无。
## 线程语义
- 当前实现对 sink 列表写入加锁。
## 示例
2026-03-26 16:45:24 +08:00
```cpp
2026-03-26 17:21:44 +08:00
using namespace XCEngine::Debug;
2026-03-26 16:45:24 +08:00
2026-03-26 17:21:44 +08:00
Logger::Get().Initialize();
Logger::Get().AddSink(std::make_unique<ConsoleLogSink>());
Logger::Get().AddSink(std::make_unique<FileLogSink>("engine.log"));
2026-03-26 16:45:24 +08:00
```
## 相关文档
2026-03-26 17:21:44 +08:00
- [返回类型总览](Logger.md)
- [RemoveSink](RemoveSink.md)
- [ILogSink](../ILogSink/ILogSink.md)