自定义qDebug输出格式的方法:
qputenv("QT_MESSAGE_pattern", "%{appname} %{type} %{time [yyyy-MM-dd hh:mm:ss]} %{file} %{line} %{function} %{message}");
qSetMessagePattern("%{appname} %{type} %{time [yyyy-MM-dd hh:mm:ss]} %{file} %{line} %{function} %{message}");
如果同时设置QT_MESSAGE_pattern环境变量和qSetMessagePattern,则设置QT_MESSAGE_pattern的环境变量优先。
qSetMessagePattern设置的输出格式默认只会在debug模式下生效,在release模式下就失效了,比如release模式下文件名字和行号都为无效。
我们要想在release模式下生效,只需要在项目pro文件中添加如下定义后,重新编译即可。
DEFINES += QT_MESSAGELOGCONTEXT
具体可搜索Qt帮助文档关于qSetMessagePattern