QsLog日志
研究下QsLog,用于Qt开发。
QsLog支持六个日志级别,优先级从低到高依次为:Trace、Debug、Info、Warn、Error、Fatal、Off。
【使用】
#include <QtCore/QCoreApplication> #include<QDir> #include<QDebug> #pragma execution_character_set("utf-8") //避免中文乱码 #include<QsLog.h> //引入日志 int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); using namespace QsLogging; Logger& logger = Logger::instance(); //初始化 logger.setLoggingLevel(QsLogging::InfoLevel); //设置写入等级 const QString sLogPath(QDir(a.applicationDirPath()).filePath("logs/log.txt")); //写入的文件,自己在exe的目录新建logs文件夹 //该文件可被拆分,当大小超5M时被拆分,最多10个旧文件(超过则自动删除最旧的)。若txt已经存在,则内容继续往最新的里写,而不会清空。 DestinationPtr fileDestination(DestinationFactory::MakeFileDestination(sLogPath, EnableLogRotation, MaxSizeBytes(1024*1024*5), MaxOldLogCount(10))); logger.addDestination(fileDestination); for (int i = 0; i < 100; i++) { QLOG_TRACE() << "Here's a" << QString::fromUtf8("trace") << "message"; QLOG_DEBUG() << "Here's a" << static_cast<int>(QsLogging::DebugLevel) << "message"; QLOG_INFO() << "Program started"; QLOG_INFO() << "Built with Qt" << QT_VERSION_STR << "running on" << qVersion(); QLOG_WARN() << "Uh-oh!"; QLOG_ERROR() << "An error has occurred"; QLOG_FATAL() << "Fatal error!"; } qDebug() << "写入完毕"; QsLogging::Logger::destroyInstance(); //释放 return a.exec(); }
若想以日期为txt名,参考如下:
const QString sLogPath="C:/Logs/"+QDateTime::currentDateTime().toString("yyyyMMdd")+".txt"; //以日期为txt名称
【配置】
1、生成dll、lib
git上下载后,用Qt打开 QsLogSharedLibrary.pro
Debug模式下,运行一次(若失败,取消影子构建),将dll和lib拷贝出来。防止Release时覆盖,因为名字一样。
Release模式下再来一次,将dll和lib拷贝出来。
将所有的h文件拷贝出来。我放到了C盘,如下图
2、配置环境
系统环境变量中添加存有dll的目录
VS新建项目后,把include和lib配置好即可
【参考】
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步