当前位置: 首页 > news >正文

051-第三代软件开发-日志容量时间限制

头图

第三代软件开发-日志容量时间限制

文章目录

  • 第三代软件开发-日志容量时间限制
    • 项目介绍
    • 日志容量时间限制

关键字: QtQmlTime容量大小

项目介绍

欢迎来到我们的 QML & C++ 项目!这个项目结合了 QML(Qt Meta-Object Language)和 C++ 的强大功能,旨在开发出色的用户界面和高性能的后端逻辑。

在项目中,我们利用 QML 的声明式语法和可视化设计能力创建出现代化的用户界面。通过直观的编码和可重用的组件,我们能够迅速开发出丰富多样的界面效果和动画效果。同时,我们利用 QML 强大的集成能力,轻松将 C++ 的底层逻辑和数据模型集成到前端界面中。

在后端方面,我们使用 C++ 编写高性能的算法、数据处理和计算逻辑。C++ 是一种强大的编程语言,能够提供卓越的性能和可扩展性。我们的团队致力于优化代码,减少资源消耗,以确保我们的项目在各种平台和设备上都能够高效运行。

无论您是对 QML 和 C++ 开发感兴趣,还是需要我们为您构建复杂的用户界面和后端逻辑,我们都随时准备为您提供支持。请随时联系我们,让我们一同打造现代化、高性能的 QML & C++ 项目!

重要说明☝

☀该专栏在第三代软开发更新完将涨价

日志容量时间限制

这也就是为什么我在前几篇提到了日志分离,因为我们的日志真的很完善了,所以我觉得可以作为一个轮子,放到其他项目中,今天这个需要就是要可以通过容量和时间来控制日志的存储,核心代码如下

/*** @brief turing_log::logIsSpace 判断空间*/
void Turing_Log::logIsSpace()
{QString  filePath = m_path;QDir dirYear(filePath);quint64 logSize=0;quint64 logSaveSpace = m_logSaveSpace*1024*1024*1024;dirYear.setFilter(QDir::Dirs | QDir::NoDotAndDotDot | QDir::NoSymLinks);dirYear.setSorting(QDir::Name | QDir::Reversed);foreach(QFileInfo fileInfoYear, dirYear.entryList()){QDir dirMonth(filePath + fileInfoYear.filePath());dirMonth.setFilter(QDir::Dirs | QDir::NoDotAndDotDot | QDir::NoSymLinks);dirMonth.setSorting(QDir::Name | QDir::Reversed);foreach(QFileInfo fileInfoMonth, dirMonth.entryList()){QDir dirDay(filePath + fileInfoYear.filePath() + "/" + fileInfoMonth.filePath());dirDay.setFilter(QDir::Files | QDir::NoDotAndDotDot | QDir::NoSymLinks);dirDay.setSorting(QDir::Name | QDir::Reversed);foreach(QFileInfo fileInfoDay, dirDay.entryInfoList(QDir::Files)){logSize += fileInfoDay.size();if(logSize > logSaveSpace){qInfo() << "日志系统,空间超出,删除日志数据库" << fileInfoDay.filePath();QFile::remove(fileInfoDay.filePath());}else{m_logSize = logSize;}}if(dirDay.isEmpty()){QDir removeMonth(filePath +  fileInfoYear.filePath() + "/" + fileInfoMonth.filePath());if (removeMonth.removeRecursively()){qInfo() << "日志系统,空间超出,删除日志月文件夹" << filePath +  fileInfoYear.filePath() + "/" + fileInfoMonth.filePath();}}}if(dirMonth.isEmpty()){QDir removeMonth(filePath + fileInfoYear.filePath());if (removeMonth.removeRecursively()){qInfo() << "日志系统,空间超出,删除日志年文件夹" << filePath + fileInfoYear.filePath();}}}qInfo() << "日志系统,开机日志存储空间 : " << m_logSize/1024/1024 << "MB";
}/*** @brief turing_log::logIsMonth 判断时间*/
void Turing_Log::logIsMonth(QString filePath)
{m_logFileCount = 1;QDir tmpDir(filePath);tmpDir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot | QDir::NoSymLinks);tmpDir.setSorting(QDir::Name | QDir::Reversed);foreach(QFileInfo fileInfo, tmpDir.entryList()){QDir tmpMonth(filePath + fileInfo.filePath());tmpMonth.setFilter(QDir::Dirs | QDir::NoDotAndDotDot | QDir::NoSymLinks);tmpMonth.setSorting(QDir::Name | QDir::Reversed);foreach(QFileInfo fileInfoMonth, tmpMonth.entryList()){if(tmpMonth.isEmpty() || m_logFileCount > m_logSaveMonth){QDir removeMonth(filePath +  fileInfo.filePath() + "/" + fileInfoMonth.filePath());if (removeMonth.removeRecursively()){qInfo() << "日志系统,时间超出,删除日志月文件夹" << filePath +  fileInfo.filePath() + "/" + fileInfoMonth.filePath();QFile::remove(filePath + fileInfoMonth.filePath());}}elsem_logFileCount++;}}qInfo() << "日志系统,开机日志存储时间: " << m_logFileCount;
}

博客签名2021

相关文章:

051-第三代软件开发-日志容量时间限制

第三代软件开发-日志容量时间限制 文章目录 第三代软件开发-日志容量时间限制项目介绍日志容量时间限制 关键字&#xff1a; Qt、 Qml、 Time、 容量、 大小 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language…...

9步打造个人ip

什么是个人IP&#xff1f; 就是一个人创造出来的属于自己的有个性有价值的&#xff0c;能让他人记住你&#xff0c;信任你&#xff0c;认可你的东西。 如何强化个人IP呢&#xff1f; 需要一些必要的条件如专业性、耐心、勤奋等等要知道&#xff0c;打造IP是一个见效慢的过程&am…...

【深度学习】吴恩达课程笔记(四)——优化算法

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ 【吴恩达课程笔记专栏】 【深度学习】吴恩达课程笔记(一)——深度学习概论、神经网络基础 【深度学习】吴恩达课程笔记(二)——浅层神经网络、深层神经网络 【深度学习】吴恩达课程笔记(三)——参数VS超参数、深度…...

MyBatis-plus 代码生成器配置

数据库配置(DataSourceConfig) 基础配置 属性说明示例urljdbc 路径jdbc:mysql://127.0.0.1:3306/mybatis-plususername数据库账号rootpassword数据库密码123456 new DataSourceConfig.Builder("jdbc:mysql://127.0.0.1:3306/mybatis-plus","root","…...

框架设计的核心要素

我们的框架应该给用户提供哪些构建产物&#xff1f;产物的模块格式如何&#xff1f;当用户没有以预期的方式使用框架时&#xff0c;是否应该打印合适的警告信息从而提供更好的开发体验&#xff0c;让用户快速定位问题&#xff1f;开发版本的构建和生产版本的构建有何区别&#…...

LeetCode - 26. 删除有序数组中的重复项 (C语言,快慢指针,配图)

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 思路一&#xff1a;快慢指针 在数组中&#xff0c;快慢指针就是两个整数下标&#xff0c;定义 fast 和 slow 这里我们从下标1开始&#xff08;下标0的数据就1个&#xff0c;没有重复项&#xff09;&…...

C#不安全代码

在C#中&#xff0c;“不安全代码”&#xff08;unsafe code&#xff09;通常指的是那些直接操作内存地址的代码。它允许开发者使用指针等低级别的数据结构&#xff0c;这些在通常的安全代码&#xff08;safe code&#xff09;中是不允许的。C# 的不安全代码提供了一种方式&…...

《C++避坑神器·二十二》VS能正常运行程序,但运行exe程序无响应解决办法

原因是某个文件只是放在了项目路径下&#xff0c;没有放在exe路径下&#xff0c;比如Json文件原来只放在了mlx项目下&#xff0c;导致VS可以运行&#xff0c;但运行exe无响应或报错如下&#xff1a; 两种方式修改&#xff1a; 1、把Json文件拷贝一份放到exe路径下 2、利用生成…...

lua调用C/C++的函数,十分钟快速掌握

系列文章目录 lua调用C\C动态库函数 系列文章目录摘要环境使用步骤你需要有个lua环境引入库码代码lua代码 摘要 在现代软件开发中&#xff0c;Lua作为一种轻量级脚本语言&#xff0c;在游戏开发、嵌入式系统等领域广泛应用。Lua与C/C的高度集成使得开发者能够借助其灵活性和高…...

自定义GPT已经出现,并将影响人工智能的一切,做好被挑战的准备了吗?

原创 | 文 BFT机器人 OpenAI凭借最新突破&#xff1a;定制GPT站在创新的最前沿。预示着个性化数字协助的新时代到来&#xff0c;ChatGPT以前所未有的精度来满足个人需求和专业需求。 从本质上讲&#xff0c;自定义GPT是之前的ChatGPT的高度专业化版本或代理&#xff0c;但自定…...

vue中一个页面引入多个相同组件重复请求的问题?

⚠️&#xff01;&#xff01;&#xff01;此内容需要了解一下内容&#xff01;&#xff01;&#xff01; 1、会使用promise&#xff1f;&#xff1f;&#xff1f; 2、 promise跟 async 的区别&#xff1f;&#xff1f;&#xff1f; async 会终止后面的执行&#xff0c;后续…...

Uniapp连接iBeacon设备——实现无线定位与互动体验(实现篇)

export default { data() { return { iBeaconDevices: [], // 存储搜索到的iBeacon设备 deviceId: [], data: [], url: getApp().globalData.url, innerAudioContext: n…...

【ceph】ceph集群删除pool报错: “EPERM: pool deletion is disabled“

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…...

【微信小程序】使用npm包

1、小程序对npm的支持与限制2、Vant Weapp通过 npm 安装修改 app.json修改 project.config.json构建 npm 包 3、使用4、定制全局主题样式5、API Promise化 1、小程序对npm的支持与限制 目前&#xff0c;小程序中已经支持使用npm安装第三方包&#xff0c; 从而来提高小程序的开发…...

【开发记录篇】第二篇:SQL创建分区表

实现分区表注意事项 分区字段必须在主键中存在 使用时间分区时&#xff0c;字段类型不支持 timestamp&#xff0c;需改为 datetime 年分区示例 下表中使用 insert_time 时间进行分区 CREATE TABLE t_log (id bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 日志ID,inse…...

vue 使用 this.$router.push 传参数,接参数的 query或params 两种方法示例

背景&#xff1a;vue项目 使用this.$router.push进行路由跳转时&#xff0c;可以通过query或params参数传递和接收参数。 通过query参数传递参数&#xff1a; // 传递参数 this.$router.push({path: /target,query: {id: 1,name: John} }); // 接收参数 this.$route.query.id …...

rk3588 usb网络共享连接

出门在外总会遇到傻 X 地方 没有能连接公网的 网口给香橙派连网 而我的香橙派5plus 没有wifi模块。。。话不多说 在手机上看一眼手机的mac地址&#xff0c; 在rk3588 上执行以下命令&#xff1a; sudo ifconfig usb0 down sudo ifconfig usb0 hw ether 58:F2:FC:5D:D4:7A //该m…...

shell 拒绝恶意连接脚本 centos7.x拒绝恶意连接脚本

1. crontab -l 脚本频率&#xff1a; */2 * * * * /bin/bash /home/shell/deny.sh 2. 脚本&#xff1a; rm -rf /home/shell/ip_list cat /var/log/secure | grep "Failed password for" | awk {print$(NF-3)} | sort | uniq -c > /home/shell/ip_list #cat /va…...

【系统架构设计】计算机公共基础知识: 2 计算机系统基础知识

目录 一 计算机系统组成 二 操作系统 三 文件系统 四 系统性能 一 计算机系统组成...

什么是代理模式,用 Python 如何实现 Proxy(代理 或 Surrogate)对象结构型模式?

什么是代理模式&#xff1f; 代理&#xff08;Proxy&#xff09;是一种结构型设计模式&#xff0c;其目的是通过引入一个代理对象来控制对另一个对象的访问。代理对象充当目标对象的接口&#xff0c;这样客户端就可以通过代理对象间接地访问目标对象&#xff0c;从而在访问过程…...

为什么93%的Gemini集成应用在48小时内必须升级?权威发布:3个高危CVE编号+官方回滚方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Gemini Bug修复公告 近日&#xff0c;我们在 Gemini 模型推理服务的 v2.4.1 版本中发现一个影响高并发场景下响应一致性的关键缺陷&#xff1a;当连续提交含嵌套 JSON Schema 的结构化请求时&#xff0…...

机器学习能耗评估工具对比:芯片传感器与估算模型实战解析

1. 项目概述与背景在AI模型规模日益膨胀、训练成本水涨船高的今天&#xff0c;我们除了关注模型的准确率和F1值&#xff0c;是否也该关心一下它“吃”了多少电&#xff1f;这不仅仅是电费账单的问题&#xff0c;更关乎我们能否在追求技术前沿的同时&#xff0c;践行环境责任。作…...

保姆级教程:在Ubuntu 20.04上搞定浙大lidar_IMU_calib(从编译到避坑)

保姆级教程&#xff1a;在Ubuntu 20.04上搞定浙大lidar_IMU_calib&#xff08;从编译到避坑&#xff09;当激光雷达&#xff08;LiDAR&#xff09;和惯性测量单元&#xff08;IMU&#xff09;需要协同工作时&#xff0c;标定这两个传感器之间的外参是必不可少的步骤。浙大开源项…...

论文提速的终极秘籍!常用的AI论文软件,秒出初稿不费力

作为一名刚完成毕业论文的过来人&#xff0c;我太懂写论文的痛苦了 —— 选题纠结、资料收集困难、逻辑梳理不清、反复修改头疼、格式排版繁琐... 直到我发现了这套 AI 写作工具组合&#xff0c;简直是论文写作的 "开挂神器"&#xff0c;效率直接翻倍&#xff0c;原本…...

NVIDIA Profile Inspector深度教程:解锁显卡隐藏设置的终极指南

NVIDIA Profile Inspector深度教程&#xff1a;解锁显卡隐藏设置的终极指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款功能强大的显卡性能调优工具&#xff0c;专为…...

Windows 11/10下,Microsoft Store打不开?手把手教你用CheckNetIsolation命令批量解除UWP网络隔离

Windows 11/10下Microsoft Store无法连接的终极解决方案&#xff1a;CheckNetIsolation命令详解当你在Windows 11或10上突然发现Microsoft Store无法加载内容&#xff0c;或者Edge浏览器部分网页打不开&#xff0c;而其他网络连接却正常时&#xff0c;这很可能是因为UWP应用的网…...

5分钟解锁专业直播音质:OBS-VST插件终极使用指南

5分钟解锁专业直播音质&#xff1a;OBS-VST插件终极使用指南 【免费下载链接】obs-vst Use VST plugins in OBS 项目地址: https://gitcode.com/gh_mirrors/ob/obs-vst 你是否曾羡慕专业主播的清晰音质&#xff0c;而自己的直播声音却总是嘈杂不堪&#xff1f;别担心&am…...

别再只用体素网格了!PCL点云降采样实战:4种方法对比与选型指南(附Python/Open3D代码)

点云降采样实战指南&#xff1a;4种核心方法深度解析与工程选型点云数据处理中&#xff0c;降采样往往是预处理环节的关键一步。面对海量的三维点云数据&#xff0c;如何在不丢失重要几何特征的前提下&#xff0c;有效减少数据量&#xff1f;这直接关系到后续算法的效率和精度。…...

基于群论的双曲空间统计建模:从莫比乌斯分布到高效算法

1. 项目概述&#xff1a;为什么我们需要双曲空间与群论&#xff1f;如果你处理过社交网络、知识图谱或者自然语言中的词汇关系&#xff0c;一定对“层次结构”这个词不陌生。想象一下&#xff0c;你要把整个维基百科的词条关系&#xff0c;或者一个公司的组织架构图&#xff0c…...

高维数据压缩:秩-1格点与双曲交叉方法原理与应用

1. 项目概述&#xff1a;高维数据压缩的格点与双曲交叉方法在科学计算和工程仿真中&#xff0c;我们常常需要处理由海量样本点构成的高维数据集。想象一下&#xff0c;你正在模拟一架飞机的气动性能&#xff0c;或者评估一个复杂金融模型的风险&#xff0c;每一次仿真都可能产生…...