资源简介

用qt开发商业程序已经九年了,陆陆续续开发过至少几十个程序,除了一些算不算项目的小工具外,大部分的程序都需要有个日志的输出功能,希望可以将程序的运行状态存储到文本文件或者数据库或者做其他处理等,qt对这个日志输出也做了很好的封装,在Qt4是qInstallMsgHandler,Qt5里边是qInstallMessageHandler,有了这个神器,只要在你的项目中所有qdebug qinfo等输出的日志信息,都会重定向接收到,网上大部分人写的demo都是接收到输出打印日志存储到文本文件,其实这就带给很多人误解,容易产生以为日志只能输出到文本文件,其实安装了日志钩子以后,拿到了所有调试打印信息,你完全可以用来存储到数据库+html有颜色区分格式的文件+网络转发输出(尤其适用于嵌入式linux无界面程序,现场不方便外接调试打印的设备)。 做过的这么多项目中,Qt4和Qt5的都有,我一般保留四个版本,4.8.7,为了兼容qt4, 5.7.0,最后的支持XP的版本, 最新的长期支持版本5.9.7 最高的新版本5.12。毫无疑问,我要封装的这个日志类,也要支持4+5的,而且提供友好的接口。 1:支持动态启动和停止。 2:支持日志存储的目录。 3:支持网络发出打印日志。 4:支持Qt4+Qt5。开箱即用。 5:支持多线程。

资源截图

代码片段和文件信息

#pragma execution_character_set(“utf-8“)

#include “frmsavelog.h“
#include “ui_frmsavelog.h“
#include “savelog.h“
#include “qdatetime.h“
#include “qtimer.h“
#include “qdebug.h“

frmSaveLog::frmSaveLog(QWidget *parent) : QWidget(parent) ui(new Ui::frmSaveLog)
{
    ui->setupUi(this);
    this->initForm();
}

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

void frmSaveLog::initForm()
{
    timer = new QTimer(this);
    connect(timer SIGNAL(timeout()) this SLOT(append()));
    timer->setInterval(1000);

    SaveLog::Instance()->setPath(qApp->applicationDirPath());
}

void frmSaveLog::append()
{
    QString msg = QString(“当前时间: %1  测试打印输出消息“).arg(QDateTime::currentDateTime().toString(“yyyy-MM-dd HH:mm:ss“));
    ui->txtMain->append(msg);
    qDebug() << msg;
}

void frmSaveLog::on_btnDebug_clicked()
{
    QString msg = QString(“当前时间: %1  手动插入消息“).arg(QDateTime::currentDateTime().toString(“yyyy-MM-dd HH:mm:ss“));
    ui->txtMain->append(msg);
    qDebug() << msg;
}

void frmSaveLog::on_ckTimer_stateChanged(int arg1)
{
    if (arg1 == 0) {
        timer->stop();
    } else {
        timer->start();
    }
}

void frmSaveLog::on_ckNet_stateChanged(int arg1)
{
    SaveLog::Instance()->setToNet(arg1 != 0);
}

void frmSaveLog::on_ckSave_stateChanged(int arg1)
{
    if (arg1 == 0) {
        SaveLog::Instance()->stop();
    } else {
        SaveLog::Instance()->start();
    }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-03-10 20:36  savelog\
     文件        1502  2019-03-09 22:25  savelog\frmsavelog.cpp
     文件         555  2019-03-09 21:47  savelog\frmsavelog.h
     文件        1546  2019-03-09 21:47  savelog\frmsavelog.ui
     文件         784  2019-03-09 21:43  savelog\main.cpp
     文件        4643  2019-03-09 22:57  savelog\savelog.cpp
     文件        1648  2019-03-09 22:24  savelog\savelog.h
     文件         517  2019-03-09 21:11  savelog\savelog.pro

评论

共有 条评论