博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
qt日志实现
阅读量:6249 次
发布时间:2019-06-22

本文共 1869 字,大约阅读时间需要 6 分钟。

qt的日志有四个级别:
    qDebug:    调试信息
    qWarning:    警告信息
    qCritical:    严重错误
    qFatal:    致命错误
可以通过<QtGlobal>下的
    void    qCritical ( const char * msg, ... );
    void    qDebug ( const char * msg, ... );
    void    qFatal ( const char * msg, ... );
    void    qWarning ( const char * msg, ... );
或include <QtDebug>时,采用更便捷输出
    qDebug()<<"debug";
    qWarning()<<"warning";
    qCritical()<<"critical";
在程序调试中这样的line printf输出没问题,如果app被部署后需要将这些输出的日志输出到日志文件中,需通过
QtMsgHandler qInstallMsgHandler ( QtMsgHandler handler )设置输出,如果想取消输出可通过qInstallMsgHandler(0)设置
qt日志输出示例:
void logMsgHandler(QtMsgType type, const char *msg)
{
    QString strLog;
    switch (type) {
        case QtDebugMsg:
            strLog = QString(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss ")+"[Debug] %1").arg(QObject::tr(msg));
            break;
        case QtWarningMsg:
            strLog = QString(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss ")+"[Warn] %1").arg(QObject::tr(msg));
            break;
        case QtCriticalMsg:
            strLog = QString(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss ")+"[Critical] %1").arg(QObject::tr(msg));
            break;
        case QtFatalMsg:
            strLog = QString(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss ")+"[Fatal] %1").arg(QObject::tr(msg));
            // abort();
        default:
            break;
    }
    //更复杂的写入文件按实际需求设置
    QFile outFile("debug.log");
    outFile.open(QIODevice::WriteOnly | QIODevice::Append);
    /**< the max size of log.txt.*/
    if(outFile.size()>10000)
    {
        outFile.close();
        //清空旧日志
        outFile.open(QIODevice::WriteOnly | QIODevice::Append | QIODevice::Truncate);
        outFile.close();
        outFile.open(QIODevice::WriteOnly | QIODevice::Append);
    }
    QTextStream ts(&outFile);
    ts << strLog << endl;
};
#include <QDebug>
 int main(int argc, char **argv)
 {
     qInstallMsgHandler(myMessageOutput);
     QApplication app(argc, argv);
    //打印日志到文件中
    qDebug("debug");
    qWarning("warning");
    qCritical("critical");
    qFatal("fatal");
    
    qDebug()<<"debug_";
    qWarning()<<"warning_";
    qCritical()<<"critical_";
    
     return app.exec();
 }

转载地址:http://vngia.baihongyu.com/

你可能感兴趣的文章
metasploit扫描vsftp服务器root权限
查看>>
bzoj 3489: A simple rmq problem
查看>>
linux的grub的背景颜色
查看>>
计算器代码
查看>>
我的友情链接
查看>>
c# Linq Where 抛出异常 导致 程序崩溃
查看>>
Excel技巧
查看>>
Windows 7无法休眠却自动关机?微软推出补丁
查看>>
优化MyEclipse编译速度慢的问题、build、project clean 慢
查看>>
我的友情链接
查看>>
RHEL6 yum配置
查看>>
Http协议状态码
查看>>
Skip List(跳跃表)原理详解与实现
查看>>
Linux报告生成器工具awk
查看>>
Oracle 11gR2 RAC ORA-00845 MEMORY_TARGET not supported on this system 解决方法
查看>>
中国首款面向企业用户的“可视化呼叫中心(集团电话)系统”正式免费
查看>>
linux下磁盘配额(quota)完全实施方案
查看>>
python爬虫学习三:python正则表达式
查看>>
linux虚拟机Virtual Machine Manager
查看>>
mongodb 数据库操作
查看>>