qDebug()使log输出到文件

转载 2018年04月17日 19:27:51



重构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 << "\n";
            qtLogfile.close();
        }
        return *this;
    }
    HSDbg& operator<<(const QByteArray& str)
    {
        QTextStream txtOutput(&qtLogfile);
        if(qtLogfile.open(QIODevice::Append | QIODevice::Text))
        {
            qDebug() << str;
            txtOutput << str << "\n";
            qtLogfile.close();
        }
        return *this;
    }
    HSDbg& operator<<(const char* str)
    {
        QTextStream txtOutput(&qtLogfile);
        if(qtLogfile.open(QIODevice::Append | QIODevice::Text))
        {
            qDebug() << QString(str);
            txtOutput << str << "\n";
            qtLogfile.close();
        }
        return *this;
    }
    HSDbg& operator<<(const int& i)
    {
        QTextStream txtOutput(&qtLogfile);
        if(qtLogfile.open(QIODevice::Append | QIODevice::Text))
        {
            qDebug() << i;
            txtOutput << i << "\n";
            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__
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72

转载自:https://blog.csdn.net/liukang325/article/details/72466199

【Qt】qDebug()调试信息保存至txt日志文件

开发环境:Win10 Qt5.7.0 VisualStudio2015 核心:qInstallMessageHandler函数 Qt可将qDebug()输出的信息(其他信息),进行额外处理 最常见的用...
  • shihoongbo
  • shihoongbo
  • 2016-10-09 11:01:34
  • 1783

QT5 qDebug 输出到文件

QT4的做法和QT5有差异, QT5中已经废除了qInstallMsgHandler . 具体代码如下:#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) vo...
  • Fred_Wu
  • Fred_Wu
  • 2016-06-01 11:26:02
  • 2042

Qt4/Qt5 qDebug输出到文件

在Qt中qDebug()可以可以打印出十分细致的log,用过你就会喜欢。现在要将qDebug() 等重定向到文件中。 但是Qt4.xxx版本(Qt5以下)和Qt5以上版本中qDebug()重定向是有...
  • qq_33663749
  • qq_33663749
  • 2016-09-02 10:33:53
  • 737

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

重构qDebug()
  • liukang325
  • liukang325
  • 2017-05-18 13:58:25
  • 405

改变qDebug的输出到文本文件

功能:把控制台的程序输出到文本文件,同时保留在控制台显示   #include #include "qmlapplicationviewer.h" #include "QtDebug" #in...
  • sgcc_zhs
  • sgcc_zhs
  • 2012-11-28 09:48:56
  • 1092

Qt5.7.0 日志输出文件之debug重定向

在Qt开发过程当中经常使用qDebug等一些输出来调试程序,但是到了正式发布的时候,都会被注释或者删除,采用日志输出来代替。 做过项目的童鞋可能都使用过日志功能,以便有异常错误能够快速跟踪、定位,Q...
  • u013711616
  • u013711616
  • 2016-08-21 02:07:44
  • 2417

Qt:重定向QDebug输出到文件,并附上日期

介绍代码比较简单,就是一个函数,在main中调用即可
  • wsj18808050
  • wsj18808050
  • 2016-12-31 11:55:50
  • 1200

重定向qDebug、qWarning等到某个Qt窗口部件

将qDebug、qWarning等输出显示到一个窗口部件中
  • dbzhang800
  • dbzhang800
  • 2011-07-09 22:55:09
  • 6739

Qt日志输出至文件

转自:http://blog.sina.com.cn/s/blog_a6fb6cc90101guc5.html。     在Qt开发过程当中经常使用qDebug等一些输出来调试程序,但是到了正式...
  • u010855021
  • u010855021
  • 2016-08-09 23:31:36
  • 3956

将Eclipse里的logcat导出到本地文件

之前一直在Ubuntu下搞开发,看log都在终端搞了,现在换到Windows下,要从eclipse里把logcat导出来,楞是没找到从哪导,搞了半天才发现,原来右上角就有一个按钮可以搞定。如下图: ...
  • liuhanhan512
  • liuhanhan512
  • 2012-11-22 17:14:35
  • 3180
收藏助手
不良信息举报
您举报文章:qDebug()使log输出到文件
举报原因:
原因补充:

(最多只允许输入30个字)