日志系统

日志系统Logger 提供了基于等级的日志记录功能,同时支持格式化日志输出、流式日志输出等多种方式。

日志等级

日志记录分为四个等级,Level::Info 信息、Level::System 系统、Level::Warning 警告和 Level::Error 错误,在控制台上显示时通过不同颜色来醒目不同等级的日志。

日志宏

日志系统提供了一系列宏来方便日志记录,分别为 KGE_LOGKGE_WARNKGE_ERROR

// 输出一条等级为 Info 的日志
KGE_LOG("Info log");
// 输出一条等级为 Warning 的日志
KGE_WARN("Warning log");
// 输出一条等级为 Error 的日志
KGE_ERROR("Error log");

// 输出结果为:
// [Info] 2020-09-25 16:00:00 Info log
// [Warning] 2020-09-25 16:00:00 Warning log
// [Error] 2020-09-25 16:00:00 Error log

使用 KGE_LOGKGE_LOGF 可以实现流式和格式化两种方式的日志记录

// 几种类型的变量
int n = 10;
float f = 1.2f;
String str = "str";
// 记录日志(流式)
KGE_LOG("n is", n, ", str is", str);
// 记录日志(格式化)
KGE_LOGF("f is %.2f", f);

// 输出结果为:
// [Info] 2020-09-25 16:00:00  n is 10 , str is str
// [Info] 2020-09-25 16:00:00  f is 1.20

单例模式

日志系统使用单例模式,使用 GetInstance() 获取该对象的引用。

// 获取日志记录器实例
Logger& logger = Logger::GetInstance();

开启和关闭

使用 EnableDisable 方法来开启和关闭日志系统

Logger::GetInstance().Enable();
Logger::GetInstance().Disable();

日志记录到文件

日志系统提供了 Provider 的概念来实现将日志输出到其他地方

// 创建一个文件日志 Provider
RefPtr<LogProvider> p = new FileLogProvider("error.log");
// 设置这个 Provider 的日志级别为 Error
p->SetLevel(LogLevel::Error);
// 添加 Provider
Logger::GetInstance().AddProvider(p);

results matching ""

    No results matching ""