重构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__

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

重构qDebug()<<,使log输出到文件的更多相关文章

  1. 一个小巧的C++Log输出到文件类 (转)

      http://blog.csdn.net/dpsying/article/details/17122739 有时候需要输出一些程序运行的信息,供我们不需要调试就可以直接查看程序运行状态.所以我们需 ...

  2. 修改zerolog使log输出的文件名可以在goland里自动定位--技巧

    如何自动定位文件 最近发现goland会自动识别输出的文件或者url,但是有时候又识别不出来,折腾了一下,发现原来要求文件路径或url两边要有空格 改造zerolog 既然如此,那么让我们来改造一下z ...

  3. 【记录】尝试用android-logging-log4j去实现log输出内容到sd卡中的文件的功能

    [背景] 折腾: [记录]给Android中添加log日志输出到文件 期间,已经试了: [记录]尝试用android中microlog4android实现log输出到文件的功能 但是不好用. 然后就是 ...

  4. ios 将Log日志重定向输出到文件中保存

    对于真机,日志没法保存,不好分析问题.所以有必要将日志保存到应用的Docunment目录下,并设置成共享文件,这样才能取出分析. 首先是日志输出,分为c的printf和标准的NSLog输出,print ...

  5. MY_Log,无缝替换原生Log,支持日志输出到文件、FirePHP

    自己扩展了一个MY_Log, 用法类似于log4j,目前支持将日志输出到文件.FirePHP.如果你需要将日志输出到其他地方,比如邮件.数据库等,可以很方便地进行扩展. 用法很简单,大家一看就知道.1 ...

  6. loadrunner脚本中参数化和返回值输出log到外部文件

    loadrunner脚本中参数化和返回值输出log到外部文件 很多时候,我们在做性能测试之前,需要造数据,但是使用的这些参数化数据和生成的返回数据在后面的测试都会用的,所以我们需要在造数据过程中,将参 ...

  7. loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式

    loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式 分类: 心得 loadrunner 我的测试 2012-04-01 12:52 2340人阅读 评论(0) 收藏 举报 脚本l ...

  8. log4j2自定义Appender(输出到文件/RPC服务中)

    1.背景 虽然log4j很强大,可以将日志输出到文件.DB.ES等.但是有时候确难免完全适合自己,此时我们就需要自定义Appender,使日志输出到指定的位置上. 本文,将通过两个例子说明自定义APP ...

  9. Linux nohup不输出日志文件的方法

    引用:https://blog.csdn.net/guotao15285007494/article/details/84136234 最近在Linux上部署视频流推送应用时,由于网络不稳定等原因程序 ...

随机推荐

  1. 结合Wireshark捕获分组深入理解TCP/IP协议栈之TCP协议(TCP报文格式+三次握手实例)

    摘要:     本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述     TCP是面向连接的可靠 ...

  2. go get请求 json字符串转为结构体

    package main import ( "io/ioutil" "fmt" "net/http" "encoding/json ...

  3. MFC切换图片防止闪烁

    处理WM_ERASEBKGND消息,在消息处理函数中return TRUE;

  4. php实现删除链表中重复的节点

    php实现删除链表中重复的节点 一.总结 二.php实现删除链表中重复的节点 题目描述: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1 ...

  5. ios开发网络学习二:URL转码以及字典转模型框架MJExtension的使用

    一:url转码,当url中涉及到中文的时候,要考虑转码,用UTF8对中文的url进行转码 #import "ViewController.h" @interface ViewCon ...

  6. thinkphp5项目--练手--企业单车网站(九)(友情链接)

    thinkphp5项目--练手--企业单车网站(九)(友情链接) 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Webs ...

  7. 《从零開始学Swift》学习笔记(Day 1)——我的第一行Swift代码

     Swift 2.0学习笔记--我的第一行Swift代码 原创文章,欢迎转载. 转载请注明:关东升的博客 当第一次看到以下代码时我石化了.这些代码是什么东东?单词拼出来的? import Foun ...

  8. [Angular] Subscribing to router events

    In our root component, one thing we can do is subscribe to Router events, and do something related t ...

  9. JNI_Android 项目中调用.so动态库实现详解

    转自:http://www.yxkfw.com/?p=7223 1. 在Eclipse中创建项目:TestJNI 2. 新创建一个class:TestJNI.java package com.wwj. ...

  10. web网站如何实现兼容手机

    web网站如何实现兼容手机 一.总结 一句话总结:加上这句话即可:<meta name="viewport" content="width=device-width ...