Qt日志工具--QsLog

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
3月前
|
运维 安全 数据可视化
日志审查安排工具实战攻略:中小团队如何通过日志审查安排工具建立可控、安全的审查机制?
在审计敏感时代,日志审查安排工具成为安全运维与合规管理的关键利器。它实现审查任务的流程化、周期化与可视化,支持多系统协作、责任到人,确保“可控、可查、可追”的日志治理。工具如板栗看板、Asana、Monday 等提供任务调度、问题闭环与合规对接能力,助力企业构建高效、透明的日志审查体系,提升安全与合规水平。
|
4月前
|
JavaScript API 开发工具
HarmonyOS NEXT实战:日志工具
本文介绍了在HarmonyOS Next应用开发中,如何封装一个简单易用的日志工具LoggerKit。通过使用系统提供的HiLog API,开发者可以灵活输出不同级别的日志信息(DEBUG、INFO、WARN、ERROR、FATAL),用于分析应用运行状态和调试逻辑问题。文章详细说明了日志级别、参数配置及使用注意事项,并提供了完整的TypeScript封装示例代码,便于实际项目集成与应用调试。
115 0
|
监控 Ubuntu 安全
如何在 VPS 上安装和使用 Logwatch 日志分析器和报告工具
如何在 VPS 上安装和使用 Logwatch 日志分析器和报告工具
145 1
|
9月前
|
存储 人工智能 JSON
RAG Logger:专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、性能监控
RAG Logger 是一款专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、检索结果记录、LLM 交互记录和性能监控等功能。
417 7
RAG Logger:专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、性能监控
|
机器学习/深度学习 数据可视化
【tensorboard】深度学习的日志信息events.out.tfevents文件可视化工具
【tensorboard】深度学习的日志信息events.out.tfevents文件可视化工具
|
Prometheus Cloud Native Perl
评测Loki日志工具
评测Loki日志工具
280 0
|
11月前
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
339 8
|
11月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
341 2
|
11月前
|
运维 Prometheus 监控
特定用途的日志分析工具
【10月更文挑战第20天】
496 5
|
11月前
|
存储 机器学习/深度学习 传感器
商业日志分析工具
【10月更文挑战第20天】
253 5

推荐镜像

更多
  • qt