Qt日志工具--QsLog

简介: Qt日志工具--QsLog

简述


QsLog是一个轻量级的开源qt日志,可以输出qt自己的类型,有输出级别控制,并且可以运行时调整级别。


另外也是线程安全的,支持多线程。使用起来也很方便。


使用介绍


引入日志模块


如果要加入到你现有的qt项目里,只需在代码的项目文件(pro)里加入如下代码几个引入日志模块:

#引入日志模块,路径要修改为实际的路径
include(./QsLog/QsLog.pri)


代码


包含头文件,声明命名空间

#include "../QsLog/QsLog.h"
using namespace QsLogging;


日志初始化代码:

#define LOG_FILE_PATH "log/"  //日志路径

void initLog()
{
    // 初始化日志机制
    Logger& logger = Logger::instance();
    logger.setLoggingLevel(QsLogging::TraceLevel);  //指定日志级别

    // 添加文件为目的地
    const QString sLogPath(LOG_FILE_PATH+QString("app.log"));
    DestinationPtr fileDestination(DestinationFactory::MakeFileDestination(
      sLogPath, EnableLogRotation, MaxSizeBytes(10*1024), MaxOldLogCount(3)));
    logger.addDestination(fileDestination);

    DestinationPtr debugDestination(DestinationFactory::MakeDebugOutputDestination());
    logger.addDestination(debugDestination);

    // 打印日志
    QLOG_FATAL() << "app start."<<sLogPath;
}

//在主程序启动时,初始化;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    initLog();

    Widget w;



    w.show();

    return a.exec();
}


测试代码:

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    QTimer *pTimer = new QTimer;
    pTimer->setInterval(500);
    connect(pTimer, &QTimer::timeout, this, [this](){

        QLOG_FATAL() << "fatal msg.";
        QLOG_ERROR() << "error msg.";
        QLOG_WARN()  << "warn  msg.";
        QLOG_INFO()  << "info  msg.";
        QLOG_DEBUG() << "debug msg.";
        QLOG_TRACE() << "trace msg.";


    });
    pTimer->start();
}

Widget::~Widget()
{
    delete ui;
}


日志输出


日志输出到了指定的目录下面,会循环覆盖:

2000-01-01 10:14:14.641 [INFO ]: operator() [ 19 ]: info  msg. 
2000-01-01 10:14:14.641 [DEBUG]: operator() [ 20 ]: debug msg. 
2000-01-01 10:14:14.641 [TRACE]: operator() [ 21 ]: trace msg. 
2000-01-01 10:14:15.132 [FATAL]: operator() [ 16 ]: fatal msg. 
2000-01-01 10:14:15.132 [ERROR]: operator() [ 17 ]: error msg. 
2000-01-01 10:14:15.132 [WARN ]: operator() [ 18 ]: warn  msg. 
2000-01-01 10:14:15.132 [INFO ]: operator() [ 19 ]: info  msg. 
2000-01-01 10:14:15.132 [DEBUG]: operator() [ 20 ]: debug msg. 
2000-01-01 10:14:15.132 [TRACE]: operator() [ 21 ]: trace msg. 


完整代码


完整测试代码已上传码云:

https://gitee.com/fensnote/demo_code

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
存储 安全 Java
Qt三方库开发技术:log4Qt介绍、编译和使用
Qt三方库开发技术:log4Qt介绍、编译和使用
Qt三方库开发技术:log4Qt介绍、编译和使用
|
开发工具 git C++
Qt的简易日志库实现及封装
Qt的简易日志库实现及封装
|
Windows
Qt安装消息处理qInstallMessageHandler输出详细日志
Qt安装消息处理qInstallMessageHandler输出详细日志
1092 0
|
Windows
Qt日志库Log4Qt的使用,支持文件名/行号/函数名的log打印输出
Qt日志库Log4Qt的使用,支持文件名/行号/函数名的log打印输出
2062 0
|
C++ 索引
【Qt 学习笔记】如何在Qt中打印日志 | qDebug的使用 | Assistant的使用
【Qt 学习笔记】如何在Qt中打印日志 | qDebug的使用 | Assistant的使用
2564 0
|
API UED
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
【Qt 学习笔记】Qt窗口 | 状态栏 | QStatusBar的使用及说明
3155 4
|
容器
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
【Qt 学习笔记】Qt常用控件 | 容器类控件 | Tab Widget的使用及说明
2920 2
|
编解码 C++ Windows
QT软件开发: QProcess启动进程完成交互并获取输出
QT软件开发: QProcess启动进程完成交互并获取输出
3391 0
QT软件开发: QProcess启动进程完成交互并获取输出
|
数据可视化
【Qt 学习笔记】Qt窗口 | 菜单栏 | QMenuBar的使用及说明
【Qt 学习笔记】Qt窗口 | 菜单栏 | QMenuBar的使用及说明
4922 3
《QT从基础到进阶·二十一》QGraphicsView、QGraphicsScene和QGraphicsItem坐标关系和应用
《QT从基础到进阶·二十一》QGraphicsView、QGraphicsScene和QGraphicsItem坐标关系和应用
3344 1
《QT从基础到进阶·二十一》QGraphicsView、QGraphicsScene和QGraphicsItem坐标关系和应用

热门文章

最新文章