Qt生成log日誌檔案

2021-10-04 06:52:15 字數 1893 閱讀 8563

本文在qt程式中實現了日誌功能,讀者可以在此基礎上進一步創作和拓展

系統日誌一般指存放系統重要執行資訊的log.txt檔案,主要作用有兩個:1.記錄系統重要的執行資訊 2.當系統突然崩潰時,可以根據日誌來跟蹤和定位程式錯誤。

qt 提供 qinstallmessagehandler(qt5)或者qinstallmsghandler(qt4),可以對qdebug、qwarning、qerror等進行重定向等處理。

qdebug

除錯資訊

qwarning

警告資訊

qcritical

嚴重錯誤

qfatal

致命錯誤

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

void

outputmessage

(qtmsgtype type,

const qmessagelogcontext &context,

const qstring &msg)

// 設定輸出資訊格式

qstring context_info =

qstring

("file:(%1) line:(%2)").

arg(

qstring

(context.file)).

arg(context.line)

; qstring current_date_time = qdatetime::

currentdatetime()

.tostring

("yyyy-mm-dd hh:mm:ss ");

qstring current_date =

qstring

("(%1)").

arg(current_date_time)

;// qstring message = qstring("%1 %2 %3 %4").arg(text).arg(context_info).arg(msg).arg(current_date);

qstring message =

qstring

("%1 %2").

arg(current_date)

.arg

(msg)

;// 輸出資訊至檔案中(讀寫、追加形式)

qfile file

("log.txt");

file.

open

; qtextstream text_stream

(&file)

; text_stream << message <<

"\r\n"

; file.

flush()

; file.

close()

;// 解鎖

mutex.

unlock()

;}intmain

(int argc,

char

*ar**)

可以在的build-**_qt_5_11_2_msvc201_**bit-****檔案下找到log.txt檔案

在上面的介紹中,我們在main函式前定義了乙個outputmessage,這種方式在複雜的程式中很不美觀,一種比較好的方式是將其打包進log庫中,這樣的話只需要#include 「log.h」就行了。另外,很多博文將其封裝進了log類中,也值得借鑑。

Qt列印Log日誌到檔案

寫軟體時有時候需要記錄日誌到檔案,方便檢視軟體執行資訊和排查問題,qt有自己的日誌列印功能,實現qt日誌功能需要用到下面的函式,其中qt4和qt5的函式有區別 上面的函式是用來列印除錯資訊,警報資訊,危險資訊和致命資訊的。當qt有內部錯誤產生時,qt除錯庫會列印幾百種警報資訊 通常是異常的函式引數 ...

log日誌檔案配置

定義檔案最大大小 超過就生成新的檔案 按時間生成檔案 指定monthly 每月 weekly 每週 daily 每天 half daily 每半天 hourly 每小時 和minutely 每分鐘 yyyy mm,對應monthly 每月 yyyy ww,對應weekly 每週 yyyy mm dd...

Qt使用Log4Qt寫日誌

log4qt 是apache log4j 的qt移植版 官網 首先初始化log4qt,設定配置檔案和訊息繫結 log4qt propertyconfigurator configure qtlog4qt.conf log4qt logmanager sethandleqtmessages true ...