qt5添加日志文件

Qt5之 简单的日志记录工具类 qt5 自己做的一个读写 sqlite3 的数据工具,能打开sqlite3格式的数据库文件 地址:https://blog.youkuaiyun.com/HK_5788/article/details/80963547 完善前面的文章中提到的工具,最近在实战中遇到了不少问题,故增加日志记录功能,记录软件的一些信息,方便查找问题 Qt 5 , mingw     ------------- 上代码--... 阅读详情

为了方便调试,可以在程序中添加一定的打印信息,这样可以通过串口打印进行查看,

但是这种方式只适合开发阶段中的开发人员,对于测试人员可能不会接串口来查看程序

运行过程中的打印信息。这时我们可以将打印信息以文本的形式保存起来,方便出问题

时查看打印日志,对已QT可以很方便实现。代码实现如下:

#ifdef DEBUG_LOG

void customMessageHandler(QtMsgType type, const QMessageLogContext &ctx, const QString &msg)
{
    QString txt;
    QDateTime time = QDateTime::currentDateTime();
    QString timeStr = time.toString("yyyy-MM-dd hh:mm:ss");


    switch (type)
    {
        case QtDebugMsg:
            txt = QString("Debug:(%1) <%2> [%3] {%4}").arg(timeStr).arg(ctx.file).arg(ctx.line).arg(msg);
            break;
        case QtWarningMsg:
            txt = QString("Warning:(%1) <%2> [%3] {%4}").arg(timeStr).arg(ctx.file).arg(ctx.line).arg(msg);
            break;
        case QtCriticalMsg:
            txt = QString("Critical:(%1) <%2> [%3] {%4}").arg(timeStr).arg(ctx.file).arg(ctx.line).arg(msg);
            break;
        case QtFatalMsg:
            txt = QString("Fatal:(%1) <%2> [%3] {%4}").arg(timeStr).arg(ctx.file).arg(ctx.line).arg(msg);
            break;
        default:
            break;

    }
#ifdef RUN_ON_PC
    QFile outFile("/home/firephoenix/work/yuv/debugLog.txt");
#else
    QFile outFile("/mnt/sdcard/mmcblk1p1/video/debugLog.txt");
#endif
    outFile.open(QIODevice::WriteOnly | QIODevice::Append);
    QTextStream ts(&outFile);
    ts << txt << endl;
}

#endif

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

#ifdef DEBUG_LOG
    qInstallMessageHandler(customMessageHandler);
#endif

    WinFrame w;
    w.show();

    return a.exec();
}

为了方便开发与测试阶段都能方便的查看调试信息,可以在.pro文件中定义

DEFINES += DEBUG_LOG

这样在开发阶段可以将其屏蔽,这样开发人员可以通过串口查看打印信息,发行测试版本时可以将屏蔽

去掉,这样在测试阶段的打印信息将会保存在文件中。

Qt5的Log打印 背景: 一般情况下,我们调试版本会在code里面添加一些qDebug来帮助我们修改代码。 但是当我们的软件版本发布出去,用户告诉我们软件使用出问题了,并且我们在自己的实验室无法复现问题怎么办? 这个时候怎么依靠我们之前在代码里面添加的qDebug呢? 只要用户动动小手,改个配置文件就会把原来代码里面的log输出到一个txt里,然后送给我们分析问题。 方法: 首先,我们使用帮助文 阅读详情

相关推荐

Qt调试详细日志文件输出

如果想恢复消息处理程序,调用qInstallMessageHandler(0)。目的:生成log.txt日志文件,记录详细日志信息(包括等级、所在文件、所在行号、描述信息、产生时间等),以便于快速跟踪、定位。qInstallMessageHandle安装消息,注册回调函数,对qDebug()、qWarning()、qCritial()、qInfo()、qFatal() 等函数输出信息重定向处理。QtMessageHandler 回调函数处理日志信息,包括等级、所在文件、所在行号、描述信息、产生时间。

qq_37464701的博客 1145

Qt5如何输出日志输出文件

原文链接:https://blog.youkuaiyun.com/CLinuxF/article/details/78948983 在Qt开发过程当中经常使用qDebug等一些输出来调试程序,但是到了正式发布的时候,都会被注释或者删除,采用日志输出来代替。 做过项目的童鞋可能都使用过日志功能,以便有异常错误能够快速跟踪、定位,Qt也提供的类似的机制。之前用Qt4做项目时使用的是Qt::qInstall...

chen645096127的博客 7859

QT5.13使用log4qt

1. 拉取并编译log4qt的源码: 这个是qt5的:https://github.com/MEONMedical/Log4Qt git clone到本地后: 用qt打开编译 此时在 bin目录会生成我们所需要的动态库:log4qt.dll 2. 在项目中使用log4qt 将log4qt.dll和\Log4Qt\src复制到你的工程目录下,在\Log4Qt\src\log4qt里面留下.h文件,其他去掉,然后修改项目的.pro文件 然后在你需要使用到写日志的地方添加对应头文件: .

qq_32251579的博客 1250

Qt5 调试之详细日志文件输出(qInstallMessageHandler)

注明:以下方法仅适用于 Qt5 及以上版本 函数说明: QtMessageHandler qInstallMessageHandler(QtMessageHandler handler)   此函数在使用Qt消息处理程序之前已定义。返回一个指向前一个消息处理程序。  消息处理程序是一个函数,用于打印qDebug,qWarning,qCritical和qFatal的错误消息...

daxagewb279752的博客 1171

Qt日志记录器:实现灵活的应用程序日志记录

Qt的日志记录器提供了一种机制来自定义日志输出目标,以便将日志消息记录到不同的地方,比如文件、数据库或网络。Qt的日志记录器提供了一种机制来自定义日志输出目标,以便将日志消息记录到不同的地方,比如文件、数据库或网络。Qt提供了一个名为QtLogger的日志记录器类,它可以帮助我们轻松地实现应用程序的日志记录功能。Qt提供了一个名为QtLogger的日志记录器类,它可以帮助我们轻松地实现应用程序的日志记录功能。在构造函数中,我们打开了一个文件来存储日志消息,并定义了日志的格式。,它将日志消息输出到控制台。

ArqLoop的博客 703

QT应用编程: QDebug输出重定向到日志文件

一、环境介绍 操作系统介绍:win10 64位 QT版本:5.12.6 二、功能介绍 初始化QDebug输出重定向到日志文件,程序发布之后方便查看日志文件.了解程序执行情况。 三、示例代码 #include "widget.h" #include <QApplication> void customMessageHandler(QtMsgType type, const QMessageLogContext &, const QString & str) { .

2348

qt4、qt5分别实现输出日志到本地

【笔记】qt4、qt5分别实现输出日志到本地

weixin_43284805的博客 348

Qt如何输出日志输出文件(最全最新的框架方法,包含Qt4和Qt5)

@TOC) 描述 最近用到了Qt5的日志输出功能模块,现记录一下,途中还遇见一些release版本日志输出不显示行号的问题。 回归正题:在Qt开发过程当中经常使用qDebug等一些输出来调试程序,但是到了正式发布的时候,都会被注释或者删除,采用日志输出来代替。 做过项目的童鞋可能都使用过日志功能,以便有异常错误能够快速跟踪、定位,Qt也提供的类似的机制。之前用Qt4做项目时使用的是Qt::qIns...

波风水门 2471

Qt5将qDebug等日志信息写入日志文件

Qt5将qDebug等日志信息写入日志文件 文章目录Qt5将qDebug等日志信息写入日志文件1、思路2、代码3、问题4、结果与扩展思路 1、思路 其实Qt提供了将日志写入文件的方式,是以接口的形式提供的,我们只需要按照我们的需求完成回调函数和我们自己的接口即可。 为方便调用,我们一般直接写到log.h中即可。 1、创建log.h 2、根据我们自己的需求完成回调函数 3、根据需求封装外部调用函数并注册回调函数 2、代码 我这里按照我的需求,当接口传递日志文件名和等级时使用传递的文件存储日志,否则以精确

逍遥游的博客 2645

自己实现的Qt日志记录系统

原理:重定向qDebug、qInfo、qWarning、qCritical、qFatal等宏,输出到txt文件。如果需要输出到Qt控件上,则需要使用Qt提供的反射机制。

基于Arduino UNO的OLED显示器使用方法x2(Arduino系列五)

Arduino使用OLED显示模块可以实现串口数据显示,还可以与其他模块联合使用,实现实时显示开发板实时数据。

LNN0212的博客 4171

在Qt5中简单使用log4qt

log4qt的源码 for Qt5:下载 用qt creator打开已下载的log4qt.pro,编译生成动态库log4qt.dll 开始使用 新建工程在pro文件中添加 # Add Log4qt libary INCLUDEPATH += $$PWD/lib/log4qt/src LIBS += -L$$PWD/lib/log4qt/lib -llog4qt 其中lib中放着log4qt...

__不白也不黑的博客 3217

Figma到Axure一键转换:Axhub Extension保姆级教程(含常见问题解决)

本文提供Axhub Extension的保姆级教程,详细讲解如何将Figma设计稿一键转换为Axure高保真交互原型。教程涵盖环境准备、核心转换四步走流程,并重点解决JSON导入失败、样式错乱、复杂组件转换等常见问题,旨在打通Figma与Axure之间的数据孤岛,大幅提升设计师和产品经理的原型制作效率。

night的博客 1575

Qt C++实战:如何捕捉Qt调试信息,统一格式化,并保存到日志文件?

做Qt开发经常需要用到qDebug、qWarning这些来查看输出信息,配合调试程序,但这些输出信息只输出到调试窗口,或者是程序执行的控制台窗口上。本实战课程详细讲解如何捕捉Qt调试信息,统一格式化,并保存到日志文件。

天恩软件工作室 1166

微信自动化进阶:Python识别特定消息并自动回复(基于win32api控件操作)

本文详细介绍了如何使用Python和win32api实现微信消息的智能监控与自动回复。通过精准识别聊天记录中的特定关键词,结合多级匹配策略和性能优化技巧,构建稳定高效的自动化回复系统,适用于企业客服、个人助手等场景。

weixin_42663213的博客 441

【电弧故障检测算法全解析,电弧串扰问题分析和解决算法】

本文系统分析了电弧故障检测算法及串扰问题解决方案。电弧检测主要采用时频域分析和机器学习方法,通过提取高频噪声、波形畸变等特征实现故障识别。针对电弧串扰问题,提出了自适应滤波、盲源分离和时频联合分析等算法。研究给出了Python和C语言的算法实现示例,包括高频能量检测、过零率计算和陷波滤波器设计。最后指出算法优化方向:实时性提升可采用滑动窗口FFT和硬件加速;抗干扰增强需结合硬件滤波;机器学习扩展可引入随机森林等分类器。该研究为电弧故障检测系统开发提供了完整的技术路线。

syttt的专栏 891

Windows界面Qt4升级到Qt5中遇到的问题及解决方案

qt4升级到qt5出现的问题汇总

Amazinghao's Freespace 1318

DDR4内存PCB设计实战:8层板Fly-by拓扑信号完整性优化

本文深入探讨了DDR4内存条在8层PCB板上采用Fly-by拓扑时的信号完整性优化实战。文章详细解析了层叠规划、阻抗控制、电源分割、等长布线及串扰抑制等关键设计要点,并强调了仿真验证的重要性,为硬件工程师提供了从理论到实践的完整设计指南与自查清单。

weixin_29296241的博客 340

Qt实践之qInstallMessageHandler输出日志文件

对于大型项目来说,一个包含了程序debug信息、告警、关键和致命消息的日志文件,对程序后期的跟踪维护尤为重要。 Qt给我们提供了一个这样的接口,可让我们生成日志文件: QtMessageHandler qInstallMessageHandler(QtMessageHandler handler) 这里的handler是需要开发人员预先设计好的消息管理函数,该函数用于打印Qt程序运行期间输出的各种消息,包含调试消息、告警内容和关键错误等。这里的QtMessageHandler是指向消息管理函数的指针。

qq_42113801的博客 714

即插即用系列(代码实践) | CVPR 2025 WPFormer:小波与原型增强Transformer——表面缺陷检测SOTA,专治弱缺陷与杂乱背景

摘要:本文提出了一种基于小波变换和原型增强的Transformer模型(WPFormer),用于像素级表面缺陷检测。该模型针对工业场景中微弱缺陷难以识别和杂乱背景干扰严重的问题,创新性地将小波变换引入Transformer的注意力机制,通过频域信息分离噪声与边缘特征,同时利用原型向量引导查询,实现了更精准的缺陷定位。核心模块包括小波增强交叉注意力(WCA)和原型引导交叉注意力(PCA),适用于工业缺陷检测、伪装目标检测和医学图像分割等任务。代码已开源,支持即插即用集成到现有框架中。

分享顶会顶刊论文即插即用模块 301

Codex 桌面端自定义模型列表为空 — 修复记录

摘要:Codex桌面端首次启动正常,但二次启动后出现中文界面且模型列表丢失。问题根源在于Electron的Chromium持久化状态损坏,导致UI渲染异常。解决方案包括:1) 将config.toml中的模型路径改为绝对路径;2) 删除损坏的状态文件.codex-global-state.json;3) 清除Chromium用户数据目录AppData\Roaming\Codex\web。验证显示修改后模型功能恢复正常,重装无效的原因是卸载未清除用户数据目录。

猿小白的博客 1153

【Qt专栏】将调试信息输出到日志文件中

将工程的调试信息输出到日志文件中,只要花10分钟就能学会,用心真的很简单!

weixin_43729127的博客 1523

PyTorch实战(26)——PyTorch分布式训练

在本节中,我们将探讨如何通过跨机器和机器内多进程的分布式训练来加速模型训练过程。我们将系统学习 PyTorch 提供的三大分布式训练 API——torch.distributed、torch.multiprocessing 以及 torch.utils.data.distributed.DistributedSampler,使用这些 API 能够极大的简化分布式训练,介绍如何使用 PyTorch 的分布式训练工具,在 CPU 和 GPU 上加速训练。

盼小辉丶的博客 3831

Qt生成log日志文件

摘要: 本文在Qt程序中实现了日志功能,读者可以在此基础上进一步创作和拓展 介绍: 系统日志一般指存放系统重要运行信息的log.txt文件,主要作用有两个:1.记录系统重要的运行信息 2.当系统突然崩溃时,可以根据日志来跟踪和定位程序错误。 Qt 提供 qInstallMessageHandler(Qt5)或者qInstallMsgHandler(Qt4),可以对QDebug、QWarning、Q...

Mr Qin的博客 8745

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: qt5读取按键值的两种方式
下一篇: qt窗口透明
Aiden@semidrive
博客等级 码龄14年 110粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值