Files
XCEngine/docs/api/XCEngine/Debug/ILogSink/ILogSink.md

1.6 KiB
Raw Blame History

ILogSink

命名空间: XCEngine::Debug

类型: class (abstract)

头文件: XCEngine/Debug/ILogSink.h

描述: 定义日志输出目标的最小接口。

概述

ILogSink 把“日志生产”与“日志落地”分离开来。Logger 只负责构造 LogEntry、做全局过滤并分发,而真正的输出策略交给 sink 实现决定。

这类接口的意义在于:

  • 可以同时输出到控制台、文件、编辑器面板或远程通道。
  • 不需要让业务模块直接依赖具体输出媒介。
  • 便于在测试中插入自定义 sink 验证日志行为。

契约

  • Log 必须接收一条已经构造好的 LogEntry 并执行输出。
  • Flush 用于把 sink 内部缓冲显式落地。
  • Destructor 必须为虚析构,以便通过基类指针安全释放派生对象。

线程语义

  • ILogSink 不承诺任何线程安全保证。
  • 具体线程语义由实现类与调用方共同决定。
  • 在 XCEngine 当前实现中,Logger 会在互斥区内调用 sink因此“通过 Logger 分发”是串行的。

已知实现

公开方法

方法 说明
Destructor 虚析构函数。
Log 输出一条日志记录。
Flush 刷新 sink 内部缓冲。

相关文档