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

48 lines
872 B
Markdown

# Logger::RemoveSink
按原始指针移除一个已注册的 sink。
```cpp
void RemoveSink(ILogSink* sink);
```
## 行为说明
当前实现会在互斥区内线性扫描 sink 列表,找到第一个 `it->get() == sink` 的元素后将其删除并停止遍历。
删除后:
- sink 对象会立刻析构。
- 对应指针立即失效。
如果传入空指针或未找到匹配项,当前实现会静默返回。
## 参数
- `sink` - 之前注册到 `Logger` 的 sink 原始指针。
## 返回值
- 无。
## 线程语义
- 当前实现对移除操作加锁。
## 示例
```cpp
using namespace XCEngine::Debug;
auto sink = std::make_unique<ConsoleLogSink>();
ConsoleLogSink* sinkPtr = sink.get();
Logger::Get().AddSink(std::move(sink));
Logger::Get().RemoveSink(sinkPtr);
```
## 相关文档
- [返回类型总览](Logger.md)
- [AddSink](AddSink.md)