Qt下编写日志模块(同时记录文件名、函数名、行数)

本文介绍了如何在Qt中利用qInstallMessageHandler函数创建日志模块,详细阐述了不同调试级别如qDebug()、qInfo()等的使用,并展示了如何在输出中包含文件名、函数名和行号,以便于调试和问题定位。在Release版本中,需要额外设置.pro文件以显示这些详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简述

说来惭愧,一直以来,我都是使用一个单例模式来完成日志模块,具体操作就是调用单例的写文件函数,自己编辑日志内容,记录在日志文件里。
这种做法不利于查找调试。而使用qt内置的qInstallMessageHandler函数,重新编辑调试函数的输出内容才是简单高效的做法。

调试级别

名字很高大上,其实大家都在使用的qDebug()就是。
qDebug() – 调试信息输出;
qInfo() – 信息消息;
qWarning() – 警告消息和可恢复的错误;
qCritical() – 关键错误和系统错误;
qFatal() – 致命错误。
一共有五类,用法和qDebug()一致。需要特别说明的只有qFatal(),每当程序执行到这句话时会自动报错并终止。

代码之路

一个工程项目会出现很多的调试信息和日志信息,供我们查找调试,如果能提供信息所在的文件、函数和行号,那就太方便了。
下面,我们就可以使用qt内置的qInstallMessageHandler函数在自定义消息处理,通过各调试级别的信息输出,直接输出到屏幕并记录到日志文件。

#include <QApplication>
#include <stdio.h>
#include <stdlib.h>

#include <QMutex>
#include <QFile>
#include <QTextStream>
#include <QDateTime>

QtMessageHandler gDefaultHandler = NULL;
//自定义
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值