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