Qt日誌功能實現總結
qDebug : 除錯資訊提示
qWarning : 一般的警告提示
qCritical: 嚴重錯誤提示
qFatal : 致命錯誤提示
2、如何截獲這些資訊
Qt提供了qInstallMsgHandler 方法用來定製訊息發生後如何來處理。
qInstallMsgHandler 是一個回撥函式,主要是由qDebug、qWarnng、qCritical、qFatal這些函式進行觸發,
也就是說,qDeubg這些函式處理的訊息文字會被qInstallMsgHandler 所指向的回撥函式截獲,這樣就允許使用者自己來處理這些訊息文字。
例如,你完全可以將這些訊息文字輸出並儲存到相關的日誌檔案中。
3、將qDebug()\qWarning()\qCritical()\qFatal() 資訊輸出到指定檔案中
示例1:
#include <qapplication.h> #include <stdio.h> #include <stdlib.h> void customMessageHandler(QtMsgType type, const char *msg) { QString txtMessage; switch (type) { case QtDebugMsg: //除錯資訊提示 txtMessage = QString("Debug: %1").arg(msg); break; case QtWarningMsg: //一般的warning提示 txtMessage = QString("Warning: %1").arg(msg); break; case QtCriticalMsg: //嚴重錯誤提示 txtMessage = QString("Critical: %1").arg(msg); break; case QtFatalMsg: //致命錯誤提示 txtMessage = QString("Fatal: %1").arg(msg); abort(); } //儲存輸出相關資訊到指定檔案 QFile outputFile("customMessageLog.txt"); outputFile.open(QIODevice::WriteOnly | QIODevice::Append); QTextStream textStream(&outputFile); textStream << txtMessage << endl; }
int main( int argc, char * argv[] ) { QApplication app( argc, argv ); qInstallMsgHandler(customMessageHandler); //註冊MsgHandler回撥函式 //以後就可以像下面這樣直接打日誌到檔案中,而且日誌也會包含時間資訊 qDebug("This is a debug message"); qWarning("This is a warning message"); qCritical("This is a critical message"); qFatal("This is a fatal message"); return app.exec(); }
4、對應取消資訊處理
直接呼叫qInstallMsgHandler(0)就可以
相關推薦
Qt日誌功能實現總結
1、資訊基本分類:qDebug : 除錯資訊提示qWarning : 一般的警告提示qCritical: 嚴重錯誤提示qFatal : 致命錯誤提示2、如何截獲這些資訊Qt提供了qInstallMsgHandler 方法用來定製訊息發生後如何來處理。qInstallMsgHa
QT:Log日誌功能實現
1.簡介 在利用QT進行開發的過程中經常會用到qDebug()來輸出除錯資訊,但當程式正式釋出時,這些都會被註釋或者刪除,這時我們就需要通過Log日誌輸出來代替。 Log日誌是專案當中比用的功能,以便系統有錯誤是能夠快速跟蹤、定位,QT中提供類似的機制。在QT4中是通過Qt::
ionic學習(七):問答社群03:登入功能實現 總結篇
登入功能整整搞了一天,期間各種錯誤不斷,剛接觸ionic,對Angular也不太熟悉,沒正規的學過html,css,js等前端知識。 整理一下流程: 1.製作登入頁面 2.構造登入等待遮罩層和登入錯誤遮罩層 3.通過storge儲存登入的資訊 4.通過判斷是否登入,並顯示相應頁面 備
公司任務——日誌功能完善總結
今天是9月27號,是我來到北大軟體的第三週,這周我需要完成的任務是有兩個:1.在使用者,使用者組,角色,專案管理,基線管理,配置管理,構件管理,版本管理的日誌中新增詳細資訊,完善功能;2.在日誌查詢中新增一個下拉框,進行分類查詢。 第一個功能非常簡單,不需要什麼
Java程式碼常用功能實現總結(二)
文章目錄 1.如何取得map裡key得最大值: 2.多執行緒寫法樣例: 1.如何取得map裡key得最大值: 方法一: 將Map中的k
Java程式碼常用功能實現總結
目錄 1.獲取當前系統時間: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設定日期格式 System.out.prin
用c語言實現日誌功能
windows.h 用c語言實現 pause truct argc ifdef open info oid // 參考鏈接 // C語言實現寫入日誌文件 https://blog.csdn.net/sunlion81/article/details/8647028 #
java 如何讓利用ip 實現登入日誌功能
1.匯入如下pom org.nutz.http.Http; org.nutz.http.Response; iorg.nutz.json.Json; <!--呼叫淘寶介面API的依賴--> <dependency>
一個日誌檢視功能實現-seelog原始碼閱讀
最近被後臺日誌弄的很煩,看到有個專案簡簡單單,又能滿足需要,順便試下看看效果,做下記錄。只是記錄下一部分內容,就不全部讀了,關於原始碼可以去https://github.com/xmge/seelog。 結構設計 // websocket客戶端 type client struct
程式碼總結:文字欄關鍵字搜尋功能實現
需求:根據關鍵字搜尋功能(%萬用字元) <div id="rightquestion"> <input type="text" placeholder="請輸入查詢關鍵字"/> <a href="#"><img
嵌入式QT APP實現按下電源按鍵休眠,再按一下電源按鍵即喚醒的功能---實現產品低功耗
1、修改裝置樹 button1 { label ="return"; linux,code=<KEY_1>; gpios=<&am
C#學習總結(5)——倒計時功能實現
今晚在做老師留下的實驗報告內容,其中一個實驗包括了一個倒計時功能,第一次看到就是糾結這可怎麼寫,然後看實驗說明,要使用C#裡的計時器…然後就秒做完了。 Timer—計時器 新增Timer控制元件 到工具箱裡找到Timer,雙擊新增即可。新增之後找到
使用Poco::Logger實現日誌功能
使用的Poco標頭檔案及其對應的名稱空間 #include "Poco/FormattingChannel.h"#include "Poco/FileChannel.h"#include "Poco/PatternFormatter.h" using Poco::Messa
Android開發中使用FileDownloader來實現檔案下載功能(總結一)
今天研究了一下Android開發中檔案下載功能,記錄一下。這篇部落格主要介紹第三方下載外掛:FileDownloader的單任務的使用方法,至於多工的後面會做補充記錄,再寫一篇博文。效果圖如下:(虛擬機器連不上網)1、首先是引用方法:implementation 'com.l
【IOS功能實現】之Core Animation動畫開發總結(CALayer)
一.重要引數 bounds,frame,position屬於基本的幾何定位,相互之間數值變化會相互影響 anchorPoint:單位引數(0-1)表示,變形(transform)時候的變換源點 zPosition:相當於css中z-index的概念,
通過ThreadLocal和HandlerInterceptor實現java後臺業務埋點日誌功能
目前公司的方案是用mdc來實現一個請求的業務資料埋點記錄,但是mdc是map方式,需要手動設定key,而且每次都要手動clear,一是不方便管理,再者如果忘記clear會造成業務埋點資料混亂。所以有了想要把埋點資料欄位統一封裝的想法,這樣方便維護,後面如果修改,
Libevent通過va_list實現日誌功能
Libevent提供一個記錄錯誤和警告資訊的日誌功能。預設是直接將上述資訊輸出到標準錯誤,同時也可以通過回撥函式提供自己的日誌函式覆蓋預設的功能。 1、C語言實現可變引數 <stdarg.h>中包含一組巨集定義,它們對如何遍歷引數進行了定義。
springboot 實現攔截器許可權過濾,以及用攔截器實現操作日誌功能(二)
接上文 繼承WebMvcConfigurerAdapter 類,新增 上文寫的攔截類 具體程式碼如下: package com.hcmony.web.interceptor; import org
QT 將INI檔案中的選項寫入QComboBox中功能實現
INI檔案如下 ;====================== 個人性別 ====================== [sex] 01=男 02=女 向QComboBox中寫入下拉選項的函式
實現Qt日誌輸出到檔案
#include <QtDebug> #include <QFile> #include <QTextStream > void customMessageHandler(QtMsgType type, const char *msg) { QS