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

48 lines
872 B
Markdown
Raw Normal View History

2026-03-26 16:45:24 +08:00
# Logger::RemoveSink
2026-03-26 17:21:44 +08:00
按原始指针移除一个已注册的 sink。
2026-03-26 16:45:24 +08:00
```cpp
void RemoveSink(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 列表,找到第一个 `it->get() == sink` 的元素后将其删除并停止遍历。
2026-03-26 16:45:24 +08:00
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 对象会立刻析构。
- 对应指针立即失效。
如果传入空指针或未找到匹配项,当前实现会静默返回。
## 参数
- `sink` - 之前注册到 `Logger` 的 sink 原始指针。
## 返回值
- 无。
## 线程语义
- 当前实现对移除操作加锁。
## 示例
2026-03-26 16:45:24 +08:00
```cpp
2026-03-26 17:21:44 +08:00
using namespace XCEngine::Debug;
auto sink = std::make_unique<ConsoleLogSink>();
ConsoleLogSink* sinkPtr = sink.get();
2026-03-26 16:45:24 +08:00
2026-03-26 17:21:44 +08:00
Logger::Get().AddSink(std::move(sink));
Logger::Get().RemoveSink(sinkPtr);
2026-03-26 16:45:24 +08:00
```
## 相关文档
2026-03-26 17:21:44 +08:00
- [返回类型总览](Logger.md)
- [AddSink](AddSink.md)