【QT + Windows + DebugView 调试日志打印】

前言

有时候,会遇到一些不方便进行调试的场景,或者是在非调试模式下才会出现或更容易出现的问题,这个时候,日志打印就显得很必要了。

环境

  1. QT:5.15.2
  2. windows:win7及以上
  3. DebugView工具

调试日志打印

在QT中可以使用函数qInstallMessageHandler在main函数中注册日志信息打印函数,然后可以在打印函数中使用WinApi:OutputDebugString来将信息输出,并由DebugView接收并显示。所有采用QT自带打印函数的日志信息都会经过这个函数的处理,例如qDebug。 参考代码如下:

void myMessageHandler(QtMsgType type, const QMessageLogContext& context, const QString& msg)
{
	QString msgType = "";
	switch (type)
	{
	case QtDebugMsg:
		msgType = "Debug: ";
		break;
	case QtInfoMsg:
		msgType = "Info: ";
		break;
	case QtWarningMsg:
		msgType = "Warning: ";
		break;
	case QtCriticalMsg:
		msgType = "Critical: ";
		break;
	case QtFatalMsg:
		msgType = "Fatal: ";
		break;
	}

	QString formatMsg = QTime::currentTime().toString() + "\t" + msgType + "\t" + msg + "\n";
	OutputDebugString(formatMsg.toStdWString().c_str());
}
qInstallMessageHandler(myMessageHandler);

DebugView

总结

也可以不用DebugView接收,转而在日志信息函数中将日志写入文件中保存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值