Qt Log4qt实现的日志记录

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")  \
         
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值