48 lines
872 B
Markdown
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)
|