资源简介
用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
- 上一篇:千万级百度知道语料,共1千万条
- 下一篇:html课设(个人博客网站)
相关资源
- QT使用Opencv库及网络摄像头做的视频监
- Qt实现微信气泡聊天效果
- QT实现浏览器+百度地图
- Qt5使用百度地图test
- QT 自定义无边框窗体,支持边缘拖拽
- Qt5-嵌入百度地图
- Qt-Charts动态显示多条折线电压值(实
- esp8266继电器配网+断电保存+可重复配
- mupdf-qt已编译库文件
- STM32F103+SIM800C 移植MQTT 连接阿里云服务
- QT5版简易网络调试助手附带编译好的
- 封装QTableView,支持冻结列,绘制表头
- Qt实现二维码扫描器
- Qt局域网聊天工具
- qt指纹采集测试程序
- Qt实现浏览器
- qt调用百度地图与js通信源码
- Qt调用百度地图APImap_APP.7z
- Cpp/Qt/Opencv 识别简单手势剪刀石头布
- Qt加载HTML/js,实现相互调用的小程序
- QT简单的计时器程序
- libmodbus 在 Windows平台 Qt5 MinGW 中的测试
- QT5-电压电阻表盘源码可以自定义阴影
- QT-电压电阻表盘源码可以自定义阴影
- qt写word两种方式代码
- QTableWidget分页代码
- QT编写的邮件发送工具
- Qt写的实用闹钟,可以自己选择音乐
- Echart.rar
- QWidget 绘制的聊天气泡效果
评论
共有 条评论