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