0. 前言
很久没有更新博客, 现在转Qt方向, 重新开始写代码, 博客也不能落下, 每天的学习坚持记录在这里.
Log4qt 是一个日志记录的第三方库, 可以实现debug, error, info, warn 四种日志类型的输出, 使用也很方便.
log4qt: https://sourceforge.net/projects/log4qt/files/
下载后将lo4qt文档导入项目即可
log封装类是用的红模仿博主的, 感谢分享
此案例是在qt5下实现的, qt4的等以后再加
1. 实现效果
在build目录下会生成log文件夹, 有四个txt文件
在程序中调用API即可, info 的函数如下调用
Log::instance()->info("信息测试日志系统当中...");
2. 运行环境
win10 qt5.14.0
3. 目录结构
4. 源码编译
main.cpp
#include <QCoreApplication>
#include <QTextCodec>
#include <QThread>
#include "log.h"
#include "define.h"
using namespace Log4Qt;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QThread::currentThread()->setObjectName("主线程");
QTextCodec *codec = QTextCodec::codecForName("GBK");
QTextCodec::setCodecForLocale(codec);
Log::instance()->init(QCoreApplication::applicationDirPath() + "/" +"etc/log.conf");
Log::instance()->debug("调试测试日志系统当中...");
Log::instance()->info("信息测试日志系统当中...");
Log::instance()->warn("警告测试日志系统当中...");
Log::instance()->error("错误测试日志系统当中...");
return a.exec();
}
define.h
// 开发过程中暂时使用qDebug替代 1-使用debug打印输出 0-使用日志输出
#if 0
// 以文件行列记录信息,非以类名对象形式
#define LOG_DEBUG(msg) qDebug() << QString("[%1][%2][%3][%4]%5") \
.arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss:zzz")) \
.arg(QString("%1:%2:%3").arg(__FILE__).arg(__LINE__).arg(__FUNCTION__)) \
.arg(QThread::currentThread()->objectName()) \
.arg("DEBUG") \