加载中...
基础工具:日志
第1节:在Windows桌面打个叉
第2节:在窗口上跟踪输出鼠标坐标—Win32版
第3节:你好!wxWidgets
第4节:深入分析基于框架窗口的应用
第5节:玩转主菜单
第6节:简简单单,状态栏
第7节:学工具栏,懂 MVC
第8节:基于对话框的应用
第9节:事件的静态与动态绑定
第10节:实战 Windows屏幕保护
第11节:基础工具:wxString
第12节:基础工具:日期与时间
第13节:基础工具:日志
课文封面

学习 wxWidgets 中,如何通过状态栏、消息框以及专用的日志展现窗口等方式来展现日志。

0. 概述

应用程序输出日志,通常用于:

  1. 帮助程序员在开发阶段(特别是调试时)发现、找到问题(包括 bug);
  2. 在程序运行时,记录一些运行信息,以利于系统维护或辅助获取特定业务信息(比如统计);

不过,作为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 。