Qt 自定义日志输出函数(按照年月日路径)

在QT项目中使用spdlog日志库 spdlog的在ubuntu上qt项目中的使用 阅读详情

1. 前言

Qt 实现的日志函数, 可以按照日期年月日路径生成文件并记录日志

2. 效果

3. 源码

main.cpp

​

#include <QCoreApplication>
#include <QMutex>
#include <QString>
#include <QDir>
#include <QFile>
#include <QTextStream>
#include <QDateTime>

QMutex LogLock;

int WriteLog(QString type, QString content)
{
    LogLock.lock();

    QDateTime currentTime = QDateTime::currentDateTime();

    QString time = currentTime.toString("yyyy-MM-dd hh:mm:ss");
    QString date= currentTime.toString("yyyyMMdd");
    QString month = date.mid(4, 2);
    QString year=date.mid(0, 4);
    QString day = date.mid(6, 2);

    QString path="Logs/"+ year + "/" + month+"/" + day + "/";

    QString fileName = path + type + "_"+date + ".log";
    QString data = "[" + time + "]" + " " + content;

    QDir dir;
    if (! (dir.exists(path)))
        dir.mkpath(path);

    QFile f(fileName);
    f.open(QIODevice::WriteOnly|QIODevice::Append) ;
    QTextStream t(&f);
    t << data<< endl;
    f.close();

    LogLock.unlock();
    return 0;
}

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

    WriteLog("Log", "content");

    return a.exec();
}

[点击并拖拽以移动]
​

 

【Qt】日志保存到本地 Qt 添加日志到本地 阅读详情

相关推荐

Qt QDateEdit控件实战:从基础用法到高级定制与避坑指南

在桌面应用开发中,日期输入是常见的用户交互需求,其核心在于确保数据格式的规范性与用户体验的流畅性。Qt框架提供的QDateEdit控件,通过集成键盘输入、微调箭头和日历选择器,实现了标准化的日期交互。该控件不仅支持日期格式本地化、输入范围限制等基础功能,还能通过信号槽机制与数据模型高效绑定,显著提升开发效率和数据准确性。在实际应用中,QDateEdit常与QDataWidgetMapper结合,用于财务软件、库存管理等业务场景的数据录入。本文聚焦QDateEdit的实战应用,详细解析了日期格式设置、范围验证

weixin_30947043的博客 387

Qt之操作日志输出demo

支持根据日志类型,根据时间范围,根据日志内容搜索日志。同时它支持分页查看日志。日志显示是在QTableView中,同时在主页面上也有显示总页数和页码。demo操作步骤是先点击Add Log1或Add Log2按钮进行日志添加,添加后通过点击两个Search按钮对日志进行搜索。

linyibin_123的博客 2187

C++之LOG文件

主要记录C++如何进行日志文件的书写

qq_54042725的博客 616

Qt/C++编写安防视频监控系统19-日志查询

一、前言 日志查询功能是基础功能,主要分两块,一个是本地日志查询,包括运行日志、报警日志、操作日志;一个是设备日志查询,就是通过SDK去拉去NVR设备的日志信息,包括系统操作、配置操作、报警操作、录像操作、文件操作、远程操作、其他操作等,这些日志信息都是存储在NVR设备上的,根据查询的请求逐一返回日志信息到客户端显示。本地日志查询一般是绑定数据库表,然后设定查询的条件,然后select结果即可,采...

Qt/C++视频监控/推流/物联网/大屏系统/自定义控件/UI定制/输入法 6142

QT二进制文件字段分析工具

本文档整合了 V1.0 基础功能、V2.0 扩展功能(多协议、自动定位、配置化)以及 V3.0 优化建议(性能、内存、易用性、健壮性)。是最终完整的设计方案。

youarenotme的博客 361

使用Qt编写的安防视频监控系统中的日志查询

当然,这只是一个基本的示例,实际的安防视频监控系统可能会包含更多功能和复杂的查询需求。在设计界面时,可以添加一些输入控件,如文本框和按钮,用于输入查询条件和执行查询操作。在安防视频监控系统中,日志查询是一个重要的功能,它可以帮助管理员追踪系统的运行情况、监控事件和故障排查。函数中,我们获取用户输入的查询条件,并根据条件执行日志查询操作。查询结果可以将其添加到。在构造函数中,我们创建了日志查询界面的各个控件,并将它们添加到布局中。当我们完成界面设计和查询逻辑后,可以编译和运行程序,以测试日志查询功能。

FucMobile的博客 252

Qt 打印日志系统,实现打印日志按日期、大小保存,过期删除,窗口实时显示日志,网络传输日志远程调试

一套成熟的系统往往都有相应的日志系统,以便调试查看 Qt的打印信息默认处理程序将消息打印到X11下的标准输出或Windows下的调试器,其实我们可以自己处理相关打印信息,可以选择保存下来、或者界面显示,网络传输等等,qInstallMessageHandler(QtMessageHandler handler)可以帮助我们快速实现我们的日志系统

但行技术的博客 3274

逆向分析美团外卖mtgsig3.0签名算法:从抓包到算法还原实战

在移动应用开发与安全领域,API接口签名是保障数据传输完整性与身份验证的核心机制。其基本原理是通过特定的算法,将请求参数、时间戳等数据与密钥结合,生成唯一的签名串,服务器通过验证签名来识别请求的合法性。这项技术的核心价值在于防止数据篡改、重放攻击和未授权访问,是构建安全客户端-服务器通信的基石。在实际应用中,签名算法广泛应用于电商、社交、金融等各类App的接口保护场景。本文以美团外卖App的mtgsig3.0签名为具体案例,详细拆解了其生成逻辑。通过结合Frida动态调试与Jadx静态分析,文章深入探讨了如

weixin_29325515的博客 1237

Qt之qInstallMessageHandler(输出详细日志)

简述 安装之前已定义的消息处理程序,返回一个指向前一个消息处理程序。 消息处理程序是一个函数,用于打印调试信息、警告信息、严重错误和致命的错误的消息。Qt库(debug模式)包含成百上千的警告信息打印,当发生内部错误时(通常是无效的函数参数)。Qt在release模式下构建还包含这些警告,除非在编译时设置QT_NO_WARNING_...

weixin_34306593的博客 1962

SDK报错(1)undefined reference to `f_mount‘

按文中说法是ff.c文件中用了一个if语句来判断是否启用ff.h头文件,但是却没有地方进行宏定义来满足这个if条件。利用SDK读取sd卡时,添加了xilffs库,而且包含了ff.h头文件,还是对fat库的函数报错。网上有的说在ARM v7 gcc linker中添加xilffs的方法可以解决,但我试了没有用。如下图,我们可以在ff.c中自己添加一个宏定义来实现这个条件。最后在赛灵思论坛找到了一个解决方法,原文连接如下。这时候保存编译之后,报错就消失了。ff.c 文件在bsp工程下。

EfunStudy的博客 1481

静态与动态LACP链路聚合:原理、配置与排错实战指南

链路聚合技术是提升网络带宽与可靠性的核心方案,通过将多个物理端口逻辑捆绑,实现带宽叠加与链路冗余。其原理基于IEEE 802.3ad标准,通过负载均衡算法将数据流分布到不同物理链路,既避免了数据包乱序,又提升了整体吞吐量。该技术的核心价值在于消除单端口瓶颈、提供毫秒级故障切换,并能简化网络拓扑管理。在企业服务器接入、数据中心互联及虚拟化平台等场景中,链路聚合已成为构建高可用网络的基础。实践中,动态LACP模式通过协议报文协商,能主动检测链路故障并防止配置错误导致的网络环路,相比静态聚合更为可靠。本文将深入解

weixin_31412781的博客 267

qt实现日志功能

【代码】qt实现日志功能。

qq_53785489的博客 31

Unity类银河恶魔城学习记录1-10 PlayerWallJump源代码 P37

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考

Homura_的博客 1378

嵌入式开发者从0用QT开发串口调试助手(四)

1.修复了一个bug。在打开串口的时候,禁止选择串口号,波特率等2.增加了配置参数页面,可以配置发送、接收在接收框的显示内容。可以配置是否保存日志到总的日志文件(具体逻辑下面介绍)3.增加日志保存功能(具体逻辑下面介绍)4.增加了一个小功能,一键清除发送框内容,一键清除接收框内容5.增加了一个小功能,发送和接收计数,统计发送和接收的次数,以及发送和接收的总字节数6.进行了简单的页面布局1.间隔发送2.快捷发送指令3.自动应答指令备注。

a1160689228的博客 386

【ESP32】1.编译、烧录、创建工程

本文介绍了在VSCode中搭建ESP32开发环境并烧录"Hello World"工程的过程。首先通过串口工具成功下载固件后,解决了OpenOCD报错问题。针对头文件无法识别的问题,修改了c_cpp_properties.json配置文件,调整了编译器路径和IntelliSense模式。文章还详细说明了创建新工程的步骤,包括选择芯片型号和项目模板,并验证了串口打印功能。最后提醒在项目构建时要等待完成,避免文件缺失。整个流程涵盖了环境搭建、代码烧录、调试及新项目创建等关键环节。

梁山1号 1485

RT-Thread必考面试题及参考答案

RT-Thread的设备驱动模型遵循层次化的结构,设计简洁且易于扩展。它主要由设备注册、设备操作和设备控制三部分组成。设备驱动模型允许开发者为不同的硬件设备编写驱动程序,这些驱动程序可以被RT-Thread内核统一管理和调度。在RT-Thread中,设备被抽象成一系列标准的接口,包括打开、关闭、读取、写入、控制等操作,这些操作封装在结构体中。设备驱动程序需要实现这些接口,然后通过调用函数注册设备,使其对系统可见。这种模型不仅简化了驱动开发,还提高了代码的可移植性和可维护性。

大模型大数据攻城狮的专栏 1823

Qt5版本选型实战指南:从LTS特性到嵌入式开发场景深度解析

在跨平台C++ GUI开发领域,框架版本的选择直接影响项目的长期稳定性和开发效率。Qt作为业界广泛采用的跨平台应用框架,其版本管理遵循明确的生命周期策略,其中长期支持版本是保障项目稳定性的基石。理解LTS版本的发布节奏、支持周期及特性差异,对于控制技术债务、降低维护成本具有重要工程价值。尤其在嵌入式Linux GUI、工业控制面板及跨平台桌面应用等场景中,版本选型需综合考量硬件资源、操作系统兼容性、第三方库生态及团队技术栈。本文将结合Qt 5.9、5.12、5.15等核心LTS版本,分析其在现代C++支持、

weixin_34293059的博客 413

使用 MATLAB/Simulink + Deep Learning Toolbox,构建一个基于LSTM的电网负荷预测模

本文介绍了一个基于Simulink和深度学习的智能电网负荷预测与调度建模方法。通过LSTM神经网络构建负荷预测模型,将历史负荷、天气、日期等特征作为输入,预测未来24小时负荷。然后将训练好的模型集成到Simulink仿真系统中,结合发电单元模型和经济调度逻辑,实现预测驱动的电力调度优化。实验结果表明,该方法预测误差在2.5%-4.0%之间,相比传统调度方式可降低15%-25%的运行成本。文章详细展示了从数据准备、特征工程、模型训练到系统集成的完整流程,为智能电网中AI技术的应用提供了实用参考。

amy_mhd的博客 170

基于 Qt 的智能门禁系统

基于Qt开发的智能门禁系统,集成了人脸识别认证、实时视频通话、远程开门控制等核心功能,适用于智能家居、办公楼宇、公寓门禁等场景。

丰锋的博客 276

【系统分析师】高分论文:论基于构件的软件开发(气象灾害影响评估系统)

本文以某手机气象灾害影响评估系统为例,探讨了基于构件技术的软件开发实践。通过分析开发中常见的功能模块重复问题,提出建立企业构件库、针对性选择构件和加强构件管理的解决方案。项目实施中成功复用登录模块等通用构件,并针对气象数据转换需求开发新构件,最终在8个月内高质量完成系统建设。文章总结了构件开发的三个关键点:构件库建设是基础、构件选择需精准、构件管理要规范。同时指出需注意全新需求开发、性能优化等问题,建议通过培训提升团队对构件的理解力。该案例证明构件技术能有效缩短周期、降低成本,为企业积累可复用的技术资产。

数据知道的博客 4253

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

图片归档工具:项目概述与环境搭建

本文介绍了一个基于PySide6开发的图片归档工具,主要功能包括将本地图片按客户/日期/批次号三级目录归档到共享目录、记录操作日志并提供查询预览功能。项目采用PySide6作为GUI框架,搭配qt-material美化界面,使用Pillow处理图片,通过configparser管理配置。文章详细说明了项目结构、环境搭建步骤(包括虚拟环境创建和依赖安装)、配置文件设计以及程序入口的关键处理(如PyInstaller兼容性问题解决、单实例检测等)。最后分享了开发中的技术难点和解决方案,并预告下篇将实现登录系统和

caixuwen的专栏 252

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

log4cplus库编译MinGW64环境静态库

本文介绍了log4cplus日志库的编译及在Qt6中的使用方法。首先提供源码下载方式,详细说明通过Qt Creator(需设置CMake参数和安装路径)和命令行(使用MinGW64)两种编译方法。重点讲解在Qt项目中集成静态库的配置步骤,包括CMakeLists.txt的修改(包含头文件、定义宏、链接库)和代码初始化示例。最后给出日志配置文件示例,展示如何实现按天滚动日志文件并自定义输出格式。该方案适用于需要高性能日志功能的Qt跨平台项目。

new_zhou的博客 482

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Windows API 函数

《Windows API函数手册》摘要 本文档是Windows平台开发的权威参考手册,全面收录774个核心API函数,涵盖系统管理、进程线程、窗口消息、文件操作、图形处理等12大功能模块。手册采用结构化编排,主要特点包括: 编码规范 详细区分多字节(char)与宽字符(wchar_t)编码体系 提供LPSTR/LPCWSTR等字符串指针类型的完整解析 说明UTF-8与GBK编码转换的实际应用场景 核心功能模块 窗口创建:完整展示从注册类到消息循环的窗口生命周期 文件操作:覆盖CreateFile/ReadF

gqk01的博客 862

从零构建自带IDE和脚本语言的游戏引擎:工具链闭环实践

游戏引擎的核心不仅是渲染与物理,更包括编辑器、脚本语言、调试工具等组成的完整工具链。成熟引擎如Unity、Godot通过深度集成自研脚本与IDE缩短了玩法迭代周期。对于希望定制开发环境或深入理解引擎底层的开发者,掌握脚本运行时如何与C++引擎绑定、IDE如何面向场景与资源设计至关重要。本文以最小可运行骨架为例,讲解嵌入Lua脚本、注册引擎API、基于VS Code扩展实现命令控制,并给出词法分析、热重载、调试协议等关键环节的实现思路。无论是研究DSL设计,还是构建自主可控的游戏开发工具,该路径都能帮助建立从

weixin_34080951的博客 340

Python正则表达式实战:批量重命名直播回放文件与文本信息提取

正则表达式是处理文本模式匹配的核心工具,通过定义特定规则,能够高效地从非结构化数据中提取关键信息。其技术价值在于将杂乱无章的文本转化为结构化数据,是实现自动化数据处理和清洗的基础。在工程实践中,正则表达式广泛应用于日志分析、数据爬取、文本验证和文件批量处理等场景。本文聚焦于利用Python正则表达式解决一个典型问题:从包含多种特殊字符和中文日期的混乱文件名中,精准提取主播名和直播时间,并实现批量重命名。通过构建健壮的正则模式、设计容错处理流程,将经验沉淀为可复用的数据处理框架,有效应对真实世界数据的复杂性。

weixin_30652491的博客 303

C++商店销售管理系统:面向对象设计与数据持久化实战

面向对象编程(OOP)是一种基于对象和类的编程范式,其核心原理是通过封装、继承和多态来组织代码,以模拟现实世界。这种设计模式能显著提升代码的可维护性、可复用性和可扩展性,是构建复杂软件系统的关键技术。在工程实践中,OOP常与数据持久化技术结合,确保程序状态在关闭后得以保存。数据持久化涉及将内存中的对象状态序列化到文件或数据库,是实现业务连续性的基础。本文以经典的C++商店销售管理系统为例,深入剖析如何运用面向对象思想设计商品、会员、订单等核心实体类,并实现一个健壮的数据访问层。通过文件读写策略,如文本序列化

weixin_30385925的博客 845
上一篇: 内存泄漏检测
下一篇: Qt QLineEdit自动提示补全功能
Empty_Android
博客等级 码龄10年 98粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值