Qt学习笔记-release版本的日志中QMessageLogContext内容为空。

一个完整的程序应该可以是知其然并知其所以然。所以在程序的运行过程中,记录一些必要的日志可以知道程序当前的运行状态,也可以在程序运行出错后,快速定位到错误的位置。
我之前用来记录日志的工具是开源的第三方工具:Log4qt。Log4qt要根据源码编译库,还要写一个配置文件,非常繁琐。
在后面的学习过程中发现原来Qt5自带一个Qt::qInstallMessageHandler()(Qt4为Qt::qInstallMsgHandler())来重定向qDebug()、qWarning()等宏的处理,使用方法参照这个链接http://blog.sina.com.cn/s/blog_a6fb6cc90101guc5.html。

Debug输出

Release版本的输出却没有文件信息、行数等信息,如图。

Release输出

原因是:文件信息、行数等信息在Release版本默认舍弃。我们只要在.pro文件定义一个宏

DEFINES += QT_MESSAGELOGCONTEXT

然后,重新qmake,编译(有可能要删除掉之前编译的中间文件),就可以在Release版本中正确输出日志信息,如图。

最终结果

你可能感兴趣的:(Qt)