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

快三网站开发深圳wordpress外贸网站建设

快三网站开发,深圳wordpress外贸网站建设,怎样做网站卖网站,电子商务网站与普通网站的区别第三代软件开发-控制台输出彩虹日志 文章目录 第三代软件开发-控制台输出彩虹日志项目介绍控制台输出彩虹日志实现原理真实代码 总结 关键字: Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目!这个项目结合了 QM…
头图

第三代软件开发-控制台输出彩虹日志

文章目录

  • 第三代软件开发-控制台输出彩虹日志
    • 项目介绍
    • 控制台输出彩虹日志
      • 实现原理
      • 真实代码
    • 总结

关键字: QtQml关键字3关键字4关键字5

项目介绍

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

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

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

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

重要说明☝

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

控制台输出彩虹日志

真实截图,这里因为没有警告,致命错误,所以颜色有点单一。

image-20230804221317407

为啥有搞这花里胡哨的内容了,其实是为了调试方便,看了我前面日志系统的小伙伴可能有影响,我日志的实现实际就是劫持了Qt的控制台输出了,而开发到后期,有大量的日志已经记录到里面了,如果都是一个颜色的话,那真是不好区分。最一开始调试的时候其实是按照Debug和Release来区分的,就是如果是Debug模式运行,就在控制台输出,如果是Release运行,就存储到我们的日志数据库中。到了现在,那一启动,用户信息、系统运行信息、调试信息,真的是眼花缭乱,在中间过程的时候,还可以使用--------------------------------------------------,或者 AAAAAAAAAAAAAAAAAAAAAAA等做风格,但是多了真的就不好搞了,所以决定搞彩虹日志,这样就可以,比如绿色就是用户信息,黄色就是系统信息,我们的调试信息可以是蓝色,或者其他颜色。

这里我们可以先看一个Demo

#include <QtCore>
#include <iostream>void printRainbowLog(const QString& message)
{QStringList rainbowColors = {"\033[91m", "\033[93m", "\033[92m", "\033[96m", "\033[94m", "\033[95m"};static int index = 0;std::cout << rainbowColors.at(index).toStdString() << message.toStdString() << "\033[0m" << std::endl;// 轮换彩虹颜色index = (index + 1) % rainbowColors.size();
}int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);printRainbowLog("红色日志");printRainbowLog("黄色日志");printRainbowLog("绿色日志");printRainbowLog("青色日志");printRainbowLog("蓝色日志");printRainbowLog("紫色日志");return a.exec();
}

实现原理

其实就是使用了ANSI转义码来实现彩虹颜色的效果。具体来说,我们使用了不同的转义码来设置输出文本的颜色。例如,\033[91m表示设置颜色为红色,\033[93m表示设置颜色为黄色,依此类推。然后,我们将这些带有转义码的颜色字符串与要输出的日志信息拼接在一起,并通过std::cout控制台输出流输出。

请注意,控制台是否支持和如何支持ANSI转义码取决于你所使用的终端或控制台。上面的示例可能在一些运行环境中不能正常显示彩虹颜色。

真实代码

下面是我业务中的真实代码,其实我是把这个做了裁剪的了。重点就是switch里面的Case分支语句,在Debug模式下通过srd::cout输出到控制台。

/*** @brief XXXX::saveLogData 日志数据库线程*/
void XXXX::saveLogData()
{// 开启事务模式m_logDB->beginTransaction();while (true){if(!m_queueLogData.isEmpty()){m_mutex.lock();LogData logData = m_queueLogData.dequeue();QtMsgType type = logData.msgType;m_listLog = logData.strLog.split("$");m_mutex.unlock();switch(type){default:break;case QtDebugMsg: //log debug{m_messageType = "输出";
#ifdef QT_DEBUGstd::cout << QString("\033[32m" + logData.strLog + "\033[0m").toLocal8Bit().constData() << std::endl;
#endifbreak;}case QtInfoMsg: // info{m_messageType = "消息";
#ifdef QT_DEBUGstd::cout << QString("\033[33m" + logData.strLog + "\033[0m").toLocal8Bit().constData() << std::endl;
#endifbreak;}case QtWarningMsg: // warn{
#ifdef QT_DEBUGstd::cout << QString("\033[34m" + logData.strLog + "\033[0m").toLocal8Bit().constData() << std::endl;
#endifm_messageType = "警告";break;}case QtCriticalMsg:  // error{
#ifdef QT_DEBUGstd::cout << QString("\033[35m" + logData.strLog + "\033[0m").toLocal8Bit().constData() << std::endl;
#endifm_messageType = "严重";break;}case QtFatalMsg:{
//#ifdef QT_DEBUG
//                std::cout << QString("\033[31m" + logData.strLog + "\033[0m").toLocal8Bit().constData() << std::endl;
//#endifm_messageType = "致命";break;}}if(m_listLog.count() < 8){continue;}m_logData.m_timeStamp = m_listLog.at(1);m_logData.m_messageType = m_messageType;m_logData.m_Infor = m_listLog.at(3);m_logData.m_Infor = m_logData.m_Infor.replace(QRegularExpression("\n", QRegularExpression::CaseInsensitiveOption),"  ");m_logData.m_fileName = m_listLog.at(4);m_logData.m_functionName = m_listLog.at(5);m_logData.m_CurrentLine = m_listLog.at(6);m_logData.m_ThreadID = m_listLog.at(7);m_mutexTimer.lock();m_dbState = m_logDB->insert(m_logData);m_insterNumber++;if(m_insterNumber%10000 == 0){m_logDB->commitTransaction();m_insterNumber = 0;}m_mutexTimer.unlock();}else{// 日志线程退出,将缓存数据全部读出if(!m_logThread){closeDB();emit signalExitThread();break;}// 缓存读空时,线程休眠,节约性能,等待下一次数据读取QThread::msleep(10);}}
}

总结

今天的这个说难不难,所简单也不简单,代码很简单,但是知道很难。其实我觉得,任何带我开世界的人,都应该被感恩,小时候,父母带我们看精彩世界,上学时,老师给我们讲解世界的繁华,工作中,同时给我们的新世界等等,所以能接触到彩虹日志,也要感谢一个人。

image-20230804222819727

关于彩虹日志的文章:

https://jaredtao.github.io/2019/04/29/%E7%8E%A9%E8%BD%ACQt(1)-%E8%BE%93%E5%87%BA%E5%BD%A9%E8%89%B2log/,这里我只是说使用了其中的一丢丢,详细的可以看涛哥的博客,写的非常详细。


博客签名2021
http://www.yayakq.cn/news/936220/

相关文章:

  • 网站建设的基本原则wordpress lamp 建站
  • 哔哩哔哩网站4 3比例怎么做泉州seo培训
  • wordpress网站百度收录首页深圳网络推广服务是什么
  • 网站logo替换盐城网站制作网络推广
  • 一个上线的网站需要怎么做网站美化工具
  • 豆瓣网站模板国外英语写作网站
  • 做数据权威的网站南京网站维护公司
  • 建设网站需要考虑什么方案库网站
  • godaddy做网站灯饰网站源码
  • 有链接的网站怎么做机械加工网厂
  • 建设网站分几个步骤攀枝花住房和城乡建设厅官方网站
  • 营销网站制作需要多少钱seo竞争对手网站分析
  • 网站建设模板的网站制作有什么好的介绍
  • 公网ip做网站访问不门户网站建设厂商名录
  • 哪个网站有适合小学生做的题目中国建筑网官网新闻
  • 网站转移码2023国际别墅设计展
  • 正规排名网站推广公司什么网站算是h5做的
  • 营销型企业网站开发蝉知cms
  • 商城网站怎么建服装网站设计欣赏
  • 网站建设常用模板新媒体营销与运营
  • 做资源下载网站用什么工具重庆建设医院网站
  • 小说抄写员兼职福建网站建设优化
  • 建设银行总行信息网站企业seo策划方案优化案例
  • 官网和门户网站的区别哪个网站专业做饲料
  • 邱县做网站trellis wordpress
  • 网站展示型广告网站建设团队定制
  • 广西做网站公司有哪些线上推广有哪些
  • 汇创建站python wordpress 外链
  • 论坛网站模永久免费自助网站
  • 政务公开与网站建设的矛盾西电信息化建设网站