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

2.1 KiB
Raw Blame History

ConsoleLogSink

命名空间: XCEngine::Debug

类型: class

头文件: XCEngine/Debug/ConsoleLogSink.h

描述: 将日志输出到标准输出流,并在 Windows 上按级别着色。

概述

ConsoleLogSink 是最直接的调试输出目标,适合测试程序、命令行工具和开发期编辑器启动日志。它本身只关心“如何写到控制台”,不过滤 category也不处理文件、函数名和时间戳格式化以外的元数据。

当前实现中的关键行为:

  • 日志格式固定为 [LEVEL] [Category] message
  • 颜色输出只在 _WIN32 下生效;其它平台仍会输出文本,但不会着色。
  • sink 自身维护一个最小级别阈值,可在 Logger 的全局过滤之后再做一次本地过滤。

生命周期

  • Constructor 创建 sink默认开启颜色输出最小级别为 Verbose
  • Destructor 无额外资源释放逻辑。
  • Flush 手动刷新 stdout

线程语义

  • ConsoleLogSink 自身没有加锁。
  • 通过 Logger 调用时,实际输出发生在 Logger 的互斥区内,因此同一时刻只会有一个 sink 调用进入。
  • 如果绕过 Logger 直接从多个线程调用 Log,线程安全由调用方自己保证。

公开方法

方法 说明
Constructor 构造一个控制台日志 sink。
Destructor 析构 sink。
Log 将一条日志格式化写入 stdout
Flush 刷新 stdout
SetColorOutput 开关 Windows 控制台颜色。
SetMinimumLevel 设置 sink 级别阈值。

适用场景

  • 单元测试与集成测试的即时输出。
  • 编辑器或工具进程启动阶段的可见日志。
  • 临时调试某个后端时,为 Logger 追加一个低成本输出目标。

相关文档