一、qt源码格式化日志 关键内部类 QMessagePattern
qt为 格式化打印日志 提供了一个简易的 pattern(模式/格式) 词法解析的简易的内部类QMessagePattern,作用是获取和解析自定义的日志格式信息。
该类在qt的专门精心日志操作的源码文件Src\qtbase\src\corelib\global\qlogging.cpp 中定义
该类在构造函数中直接从 环境变量 QT_MESSAGE_PATTERN 中获取写有 pattern(格式/模式) 信息的字符串(qt现有的pattern的词法比较简易),然后通过setPattern()进行词法解析,得到自定义pattern的格式信息。对这个简易的词法解析源码有兴趣,可以到qlogging.cpp中查阅。
环境变量QT_MESSAGE_PATTERN 需要在到Build Environment 或者System Environment中设置。
二、qt源码日志格式化输出过程
下面是qt在windows下时,运行到setPattern时的调用堆栈,及几个函数的源码。