利用函数qInstallMessageHandler
自定义消息处理函数原型
void QtMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
- Type
- QtDebugMsg 对应 qDebug
- QtWarningMsg 对应 qWarning
- QtCriticalMsg 对应 qCritical
- QtFatalMsg 对应 qFatal
- QtInfoMsg 对应 qInfo
- Context 保存了消息输出时的上下文信息,包括所处文件,所处行号,所处函数
- msg 是用户消息字符串。
当重定向之后,控制台或QT的输出窗口就不再显示信息了
取消重定向,使用qInstallMessageHandler(0)
在这个自定义的消息处理函数中编写输出方式,以及输出的附加内容
比如,利用Qfile可以把消息内容输出到文件,可作为日志
比如,利用fprintf(stderr,则把消息内容输出到控制台或QT的输出窗口
例如
void MyMessageOut(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
m_mutex.lock();
QByteArray localMsg = msg.toLocal8Bit();
QString strMsg("");
switch(type)
{
case QtDebugMsg:
strMsg = QString("Debug");
break;

本文介绍了如何利用Qt的qInstallMessageHandler函数自定义消息处理器,将错误信息分别输出到文件作为日志记录和控制台显示,通过不同类型的处理函数实现Debug、Warning等消息的差异化输出。
最低0.47元/天 解锁文章
1149

被折叠的 条评论
为什么被折叠?



