本文在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 ...