資源簡介
用qt開發商業程序已經九年了,陸陸續續開發過至少幾十個程序,除了一些算不算項目的小工具外,大部分的程序都需要有個日志的輸出功能,希望可以將程序的運行狀態存儲到文本文件或者數據庫或者做其他處理等,qt對這個日志輸出也做了很好的封裝,在Qt4是qInstallMsgHandler,Qt5里邊是qInstallMessageHandler,有了這個神器,只要在你的項目中所有qdebug qinfo等輸出的日志信息,都會重定向接收到,網上大部分人寫的demo都是接收到輸出打印日志存儲到文本文件,其實這就帶給很多人誤解,容易產生以為日志只能輸出到文本文件,其實安裝了日志鉤子以后,拿到了所有調試打印信息,你完全可以用來存儲到數據庫+html有顏色區分格式的文件+網絡轉發輸出(尤其適用于嵌入式linux無界面程序,現場不方便外接調試打印的設備)。
做過的這么多項目中,Qt4和Qt5的都有,我一般保留四個版本,4.8.7,為了兼容qt4, 5.7.0,最后的支持XP的版本, 最新的長期支持版本5.9.7 最高的新版本5.12。毫無疑問,我要封裝的這個日志類,也要支持4+5的,而且提供友好的接口。
1:支持動態啟動和停止。
2:支持日志存儲的目錄。
3:支持網絡發出打印日志。
4:支持Qt4+Qt5。開箱即用。
5:支持多線程。

代碼片段和文件信息
#pragma?execution_character_set(“utf-8“)
#include?“frmsavelog.h“
#include?“ui_frmsavelog.h“
#include?“savelog.h“
#include?“qdatetime.h“
#include?“qtimer.h“
#include?“qdebug.h“
frmSaveLog::frmSaveLog(QWidget?*parent)?:?QWidget(parent)?ui(new?Ui::frmSaveLog)
{
????ui->setupUi(this);
????this->initForm();
}
frmSaveLog::~frmSaveLog()
{
????delete?ui;
}
void?frmSaveLog::initForm()
{
????timer?=?new?QTimer(this);
????connect(timer?SIGNAL(timeout())?this?SLOT(append()));
????timer->setInterval(1000);
????SaveLog::Instance()->setPath(qApp->applicationDirPath());
}
void?frmSaveLog::append()
{
????QString?msg?=?QString(“當前時間:?%1??測試打印輸出消息“).arg(QDateTime::currentDateTime().toString(“yyyy-MM-dd?HH:mm:ss“));
????ui->txtMain->append(msg);
????qDebug()?<}
void?frmSaveLog::on_btnDebug_clicked()
{
????QString?msg?=?QString(“當前時間:?%1??手動插入消息“).arg(QDateTime::currentDateTime().toString(“yyyy-MM-dd?HH:mm:ss“));
????ui->txtMain->append(msg);
????qDebug()?<}
void?frmSaveLog::on_ckTimer_stateChanged(int?arg1)
{
????if?(arg1?==?0)?{
????????timer->stop();
????}?else?{
????????timer->start();
????}
}
void?frmSaveLog::on_ckNet_stateChanged(int?arg1)
{
????SaveLog::Instance()->setToNet(arg1?!=?0);
}
void?frmSaveLog::on_ckSave_stateChanged(int?arg1)
{
????if?(arg1?==?0)?{
????????SaveLog::Instance()->stop();
????}?else?{
????????SaveLog::Instance()->start();
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-03-10?20:36??savelog\
?????文件????????1502??2019-03-09?22:25??savelog\frmsavelog.cpp
?????文件?????????555??2019-03-09?21:47??savelog\frmsavelog.h
?????文件????????1546??2019-03-09?21:47??savelog\frmsavelog.ui
?????文件?????????784??2019-03-09?21:43??savelog\main.cpp
?????文件????????4643??2019-03-09?22:57??savelog\savelog.cpp
?????文件????????1648??2019-03-09?22:24??savelog\savelog.h
?????文件?????????517??2019-03-09?21:11??savelog\savelog.pro
- 上一篇:千萬級百度知道語料,共1千萬條
- 下一篇:html課設(個人博客網站)
評論
共有 條評論