尧图精选

别再用 print 调试了!专业日志打印指南

🕒 发布时间:2026/9/9 12:20:53 📁 来源:尧图网络
//在日志里面增加打印得函数staticQMutex mutex;mutex.lock();//添加日志文件到指定目录QString runLogDirPathbasePath/log;QString wrongLogDirPathbasePath/Wrong;QDir logDir;if(!logDir.exists(runLogDirPath)){logDir.mkpath(runLogDirPath);}if(!logDir.exists(wrongLogDirPath)){logDir.mkpath(wrongLogDirPath);}QString logTimeQDateTime::currentDateTime().toString(yyyyMMdd hh:mm:ss);QString txt;QString lognameQDate::currentDate().toString(yyyyMMdd).append(.txt);QString delenameQDate::currentDate().addDays(-15).toString(yyyyMMdd).append(.txt);switch(type){//调试信息提示caseQtDebugMsg:txtQString(Debug: %1 %2).arg(logTime).arg(msg);logDir.setCurrent(runLogDirPath);break;//一般的warning提示caseQtWarningMsg:txtQString(Warning: %1 %2).arg(logTime).arg(msg);logDir.setCurrent(runLogDirPath);break;//严重错误提示caseQtCriticalMsg:txtQString(Critical: %1 %2).arg(logTime).arg(msg);logDir.setCurrent(wrongLogDirPath);lognameAbnormal.log;break;//致命错误提示caseQtFatalMsg:txtQString(Fatal: %1 %2).arg(logTime).arg(msg);logDir.setCurrent(wrongLogDirPath);abort();}QFileoutFile(logname);outFile.open(QIODevice::WriteOnly|QIODevice::Append);QTextStreamts(outFile);tstxtendl;QFiledefile(delename);if(defile.exists()){defile.remove();}mutex.unlock();}intmain(intargc,char*argv[]){QApplicationa(argc,argv);basePathqApp-applicationDirPath();//这句话屏蔽掉那么打印的日志在下面的对话框不屏蔽下面这句话就在调试的release/Debug文件里面qInstallMessageHandler(outputMessage);qDebug()basePathbasePath;SerialPort w;//其他部分输出qDebug()文件输出输出得变量
上一篇/下一篇内容由系统自动关联 返回资讯列表 →