Qt5之 簡單的日誌記錄工具類

2021-08-27 18:57:21 字數 2088 閱讀 9077

qt5 自己做的乙個讀寫 sqlite3 的資料工具,能開啟sqlite3格式的資料庫檔案

完善前面的文章中提到的工具,最近在實戰中遇到了不少問題,故增加日誌記錄功能,記錄軟體的一些資訊,方便查詢問題

qt 5 , mingw  

------------- 上**-------------

類名 : 

hloghelper
標頭檔案
#ifndef hloghelper_h

#define hloghelper_h

#include #include #include #include #include // 日誌記錄類

class hloghelper : public qobject

;private:

qstring m_filelogname;

qfile m_file;

qtextstream m_logtextstream;

qmutex m_filelogmutex;

qdatetime m_datetime;

};#endif // hloghelper_h

.cpp檔案

#include "hloghelper.h"

// 初始化建立檔案並開啟檔案

int hloghelper::hinit(qstring strfilepre)

else

m_filelogname = filename + qstring("_.log");

// 2、開啟檔案

// 若當前exe所在目錄下不存在 hlog資料夾,則建立

qdir dir(logpath);

if (false == dir.exists())

// 構造檔案

m_filelogname = logpath + m_filelogname;

m_file.setfilename(m_filelogname);

if (false == openflag)

m_logtextstream.setdevice(&m_file);

return 0;

}// 關閉檔案

int hloghelper::huninit()

// 檔案存在,檢查檔案是否已經開啟

bool hasoepned = m_file.isopen();

// 檔案開啟了

if (true == hasoepned)

return 0;

}// 日誌記錄前帶日期

int hloghelper::hlogtime(qstring str...)

// 日誌前不帶日期

int hloghelper::hlog(qstring str...)

說明:

1、使用方法,首先需要呼叫 hinit設定日誌檔名先關資訊,並開啟檔案

2、記錄日誌有2種方法,一種是每一行記錄前面支援日期, 另一種則不支援記錄日期。

3、該類會在 exe所在目錄建立乙個 hlog 資料夾,用於存放日誌檔案

不足:1、沒有指定日誌檔案的大小,可以一直向檔案寫入,很不友好,

2、沒有增加刪除日誌,比如,軟體自動刪除前1個月的日誌

針對這些不足,後期維護補上..........................................

ex:設定日誌名

#ifdef he_use_log

m_log.hinit(qstring("abc"));

#endif//he_use_log

記錄日誌

#ifdef he_use_log

m_log.hlogtime(qstring("void dialog::topmenustartslotopen() start"));

#endif // he_use_log

--- 完----- 

Qt5開發 的QEvent事件類

事件種類 qtimerevent 定時器事件 qmouseevent 滑鼠事件 qwheelevent 滑動滑鼠滑輪事件 qtabletevent qkeyevent 鍵盤事件 qfocusevent 焦點事件 qpaintevent 繪畫事件 qmoveevent 移動事件 qresizeeven...

Qt5開發學習之調色盤與各種工具類(五)

qtoolbox類稱為稱為工具盒類,qtoolbox提供一種列狀的層疊窗體。qtoolbutton提供了一種快速訪問命令或選擇項的按鈕,通常在工具條中使用。抽屜效果是軟體介面中一種常用形式,可以以一種直觀的方式在有限大小的介面上擴充套件出更多的功能。使用qtoolbox類實現乙個類似qq聊天介面的抽...

Qt學習記錄九之Qt5平台外掛程式建立流程

然後呼叫 init platform qlatin1string platformname platformpluginpath,platformthemename,argc,argv 通過平台外掛程式建立工廠建立 qplatformintegrationfactory create const q...