zoukankan      html  css  js  c++  java
  • 重构qDebug()<<,使log输出到文件

    重构qDebug()<<,使log输出到文件

    #include <QProcessEnvironment>
    #include <QDateTime>
    #include <QFile>
    #include <QIODevice>
    
    class HSDbg
    {
    public:
    
        HSDbg& operator<<(const QString& str)
        {
            QTextStream txtOutput(&qtLogfile);
            if(qtLogfile.open(QIODevice::Append | QIODevice::Text))
            {
                qDebug() << str;
                txtOutput << str << "
    ";
                qtLogfile.close();
            }
            return *this;
        }
        HSDbg& operator<<(const QByteArray& str)
        {
            QTextStream txtOutput(&qtLogfile);
            if(qtLogfile.open(QIODevice::Append | QIODevice::Text))
            {
                qDebug() << str;
                txtOutput << str << "
    ";
                qtLogfile.close();
            }
            return *this;
        }
        HSDbg& operator<<(const char* str)
        {
            QTextStream txtOutput(&qtLogfile);
            if(qtLogfile.open(QIODevice::Append | QIODevice::Text))
            {
                qDebug() << QString(str);
                txtOutput << str << "
    ";
                qtLogfile.close();
            }
            return *this;
        }
        HSDbg& operator<<(const int& i)
        {
            QTextStream txtOutput(&qtLogfile);
            if(qtLogfile.open(QIODevice::Append | QIODevice::Text))
            {
                qDebug() << i;
                txtOutput << i << "
    ";
                qtLogfile.close();
            }
            return *this;
        }
        HSDbg(QString fileName)
        {
            qtLogfile.setFileName(fileName);
        }
    
    private:
        QFile qtLogfile;
    
    };
    
    #define LOG_FILE_PATH   QProcessEnvironment::systemEnvironment().value("APPDATA") + "\test\logs\"
    #define LOG_FILE_NAME   "Qt_" + QDateTime::currentDateTime().toString("yyyy-MM-dd_hh-mm-ss") + ".txt"
    
    static HSDbg sHSDbg(LOG_FILE_PATH + LOG_FILE_NAME);
    //用此QDBG输出到log文件中
    #define QDBG sHSDbg<<"==="+QString(__FILE__)+" "+QString(__FUNCTION__)+"():"+QString::number(__LINE__)
    //用此QDBG输出到consloe上
    //#define QDBG qDebug()<<__FILE__<<__FUNCTION__<<"():"<<__LINE__

    http://blog.csdn.net/liukang325/article/details/72466199

  • 相关阅读:
    關於GoogleUpdate.exe
    [ZT]网站优化之页面优化重新整理
    [ZT]企业建站常用中英文对照表
    "因為整合式windows驗證沒有啟用"解決方式
    模态与非模态的弹出窗口
    [ZT]ASP.Net常用正则表达式
    【ZT】基于.Net的SAP Portal开发
    .Net Quick start for the OpenFlashChart control
    微软将发布10款假补丁 测试Windows 7升级机制
    【ZT】Oracle初学者必知的100个问题
  • 原文地址:https://www.cnblogs.com/findumars/p/7701651.html
Copyright © 2011-2022 走看看