Qt下一行代码就可以使用的稳定易用的日志log类
生活随笔
收集整理的這篇文章主要介紹了
Qt下一行代码就可以使用的稳定易用的日志log类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Qt下一行代碼就可以使用的穩定易用的日志類
此日志類是基于Qt 自帶的 擴展的一個易用的日志類,
使用的是Qt自帶的日志輸出形式, 已長期運行在許多實際項目中,穩定可靠,而且跨平臺,
在windows和linux 上都能穩定運行
百度云盤下載鏈接:https://pan.baidu.com/s/1PU1h4LrUmb5camSBON7Gxg
提取碼:v17m
默認日志文件配置:
- 默認debug等級
- 每天重新生成一個文件,
- 文件超過40MB時重新生成一個文件,
- 文件數量最多10個,超過十個則保留時間最近的10個
文件名稱:
- appName_2020_05_13_18_01_48.log
使用說明:
//日志等級enum DB_LOG_LEVEL{LOG_DEBUG = 1, //調試等級LOG_INFO, //正常等級LOG_WARNING, //只輸出警告以上LOG_ERROR //只輸出錯誤以上};
使用方法
在任意地方調用初始化,初始化之后才可輸出日志到文件
DBLog::getInstance()->init(); //初始化
外部獲取日志信息
//綁定日志輸出的信號到界面窗口顯示connect(DBLog::getInstance(), &DBLog::signalOutputLog, this, &MainWindow::sigLOG);
設置日志配置參數
DBLog::logConfig logConfig;logConfig.level = DBLog::DB_LOG_LEVEL::LOG_INFO;logConfig.createDays = 1; //日志文件創建頻率、天logConfig.fileMaxCount = 20; //日志文件最多個數個、個logConfig.fileMaxSizeMB = 50; //日志文件最大大小、MBDBLog::getInstance()->setlogConfig(logConfig); //設置日志配置
獲取日志等級
DBLog::getInstance()->getLogLevel();
手動同步日志緩存到日志文件中(正常使用無需調用,頻繁調用會影響程序運行效率)
DBLog::getInstance()->flushLogToFile();
頭文件概覽
/** ******************************************************** @brief :公共的日志輸出類* @author :zhongyl* @date :2019-06-13* @version :v1.0* @warning :* @note :使用標準的qt 日志輸出方式,日志等級、文件大小、個數,自動創建文件時間等均可配置* 使用方法:* 1、初始化* DBLog::getInstance()->setlogConfig(logConfig); //如果需要自定義日志配置、可省略* DBLog::getInstance()->init(); //初始化* 2、日志輸出示例:* qDebug()<<"hello world";* qInfo()<<"hello world";* qInfo("hello world");** 日志輸出定級:* qDebug()<<調試日志, 用于打印調試信息,和一些數據的詳細信息,正常不顯示,* 對應解決問題增加的調試信息應該 在問題關閉之后取出* qInfo()<<日常消息, 程序運行正常下應該顯示的一些狀態信息,* qWaring()<<警告消息, 一些導致程序運行狀態異常, 但是不影響程序主要功能繼續的故障* qCritical()<<臨界消息, 一些導致程序運行異常, 無法繼續正常運行,主要功能癱瘓的故障* qFatal(“崩潰消息, 一些導致程序直接崩潰, 無法運行的的故障”)
******************************************************** **/
class DBLog : public QObject
{Q_OBJECT
public://日志等級enum DB_LOG_LEVEL{LOG_DEBUG = 1,LOG_INFO,LOG_WARNING,LOG_ERROR};struct logConfig{int level; //日志等級int createDays; //日志文件創建頻率(天)int fileMaxSizeMB; //日志文件最大大小(Mb)int fileMaxCount; //日志文件最大個數logConfig() = default;};
public:static DBLog* getInstance();/*** @brief setlogConfig 設置日志參數* @param logInfo 日志參數*/void setlogConfig(logConfig logInfo);void init();int getLogLevel();void flushLogToFile();
signals:/*** @brief signalOutputLog 日志輸出的信號* @param msg 日志內容*/void signalOutputLog(QtMsgType type, const QString &msg);}
總結
以上是生活随笔為你收集整理的Qt下一行代码就可以使用的稳定易用的日志log类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个简短微信个性签名
- 下一篇: pcl需要注意的编译问题