Files
XCEngine/docs/api/debug/logger/logger.md

73 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Logger
**命名空间**: `XCEngine::Debug`
**类型**: `class` (singleton)
**头文件**: `XCEngine/Debug/Logger.h`
**描述**: 日志系统,提供分级日志记录功能
## 概述
Logger 是 XCEngine 的核心日志系统采用单例模式设计。它提供多级别Verbose、Debug、Info、Warning、Error、Fatal和多分类General、Rendering、Physics 等的日志记录功能支持自定义日志输出槽Sink
Logger 支持多个 Sink 组件,每个 Sink 可以将日志输出到不同的目的地(如文件、控制台、远程服务器等)。系统还提供宏定义 `XE_LOG``XE_ASSERT` 方便快速记录日志。
## 公共方法
| 方法 | 描述 |
|------|------|
| [`Get`](get.md) | 获取 Logger 单例实例 |
| [`Initialize`](initialize.md) | 初始化日志系统 |
| [`Shutdown`](shutdown.md) | 关闭日志系统 |
| [`AddSink`](addsink.md) | 添加日志输出槽 |
| [`RemoveSink`](removesink.md) | 移除日志输出槽 |
| [`Log`](log.md) | 通用日志记录方法 |
| [`Verbose`](verbose.md) | 记录 Verbose 级别日志 |
| [`Debug`](debug.md) | 记录 Debug 级别日志 |
| [`Info`](info.md) | 记录 Info 级别日志 |
| [`Warning`](warning.md) | 记录 Warning 级别日志 |
| [`Error`](error.md) | 记录 Error 级别日志 |
| [`Fatal`](fatal.md) | 记录 Fatal 级别日志 |
| [`SetMinimumLevel`](setminimumlevel.md) | 设置最低日志级别 |
| [`SetCategoryEnabled`](setcategoryenabled.md) | 设置分类日志开关 |
## 使用示例
```cpp
#include "XCEngine/Debug/Logger.h"
#include "XCEngine/Debug/ConsoleSink.h"
using namespace XCEngine::Debug;
// 获取单例
Logger& logger = Logger::Get();
// 初始化
logger.Initialize();
// 添加控制台输出Sink
logger.AddSink(std::make_unique<ConsoleSink>());
// 使用便捷方法记录日志
logger.Info(LogCategory::General, "Application started");
logger.Warning(LogCategory::Rendering, "Low memory warning");
logger.Error(LogCategory::Network, "Connection failed");
// 使用宏记录日志(自动包含文件、行号、函数信息)
XE_LOG(LogCategory::General, LogLevel::Info, "User logged in");
// 设置最低日志级别
logger.SetMinimumLevel(LogLevel::Warning); // 只记录 Warning 及以上
// 关闭
logger.Shutdown();
```
## 相关文档
- [LogLevel](../loglevel/loglevel.md) - 日志级别枚举
- [LogCategory](../logcategory/logcategory.md) - 日志分类枚举
- [ILogSink](../ilogsink/ilogsink.md) - 日志输出槽接口