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

44 lines
943 B
Markdown

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