0. 概述
应用程序输出日志,通常用于:
- 帮助程序员在开发阶段(特别是调试时)发现、找到问题(包括 bug);
- 在程序运行时,记录一些运行信息,以利于系统维护或辅助获取特定业务信息(比如统计);
不过,作为GUI框架,wxWidgets 提供的日志系统,也充满了 GUI “风味”,方便以多种图形界面展现日志,更方便我们通过日志排查问题。
1. 视频
2. 知识点
2.1 wxLogStatus
含两个重载版本:
- wxLogStatus(const wxChar* szFormat, …);
- wxLogStatus(wxFrame* pFrame, const wxChar* szFormat, …)
第二个版本多出来的 pFrame 参数,用于指定需将日志输出到哪个框架窗口的状态栏上。如果整个应用程序就只有一个框架窗口,或者就是在当前框架窗口内输出日志,则使用第一个版本。
2.2 格式化指示
wxLogXXX 相关函数中的入参 “szFormat”,用来指示所要生成的日志内容的格式,使用和 wxString 的 Format() 方法一样的指示符,典型的如:
| 符号 | 目标数据 | 符号 | 目标数据 |
|---|---|---|---|
| %d | 十进制整数 | %e | 科学计数法(尾数和指数) |
| %f | 十进制浮点数 | %g | 视长度,自动选择%f或%e |
| %o | 有符号八进制数 | %u | 无符号十进制整数 |
| %x | 十六进制数 | %s | 字符串 |
由于我们一直使用的是 UNICODE 版本的 wxWidgets 库,因此最末一项 %s 指示的数据,应为宽字符串,即,如为字面字符串,需以以L为前缀,(或 wxT())。
2.3 等级
- Trace / 跟踪
- Debug / 调试
- Message / 信息(info - information)
- Warning / 警告
- Error / 普通错误
- SysError / 系统错误 (指程序运行所依赖的外部环境,典型如操作系统)
- ErrorFatal / 致命错误
各自对应的日志函数:wxLogTrace、wxLogDebug、wxLogMessage、wxLogWarning、wxLogSysError、wxLogErrorFatal 。