定义一个logout,可以类似qDebug一样,把调试文件打印到文件上面去
直接使用logout()<<“putlog”<<“\n”;
#include <QCoreApplication>
#include <QObject>
#include <QFile>
#include <QTextStream>
#include <QTimer>
#include <QDebug>
QTextStream &logout()
{
static QTextStream *out = nullptr;
static QFile *fp = nullptr;
if(out != nullptr)
{
out->flush();
return *out;
}
fp = new QFile("outputlog.txt");
if(fp->exists())
fp->open(QFile::Append);
else
fp->open(QFile::WriteOnly | QFile::Truncate);
out = new QTextStream(fp);
//每500毫秒刷新一次缓存
QTimer *timer = new QTimer;
QObject::connect(timer, &QTimer::timeout, [=](){out->flush();});
timer->start(500);
return *out;
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
logout()<<"csdn: "<<"boonion"<<"\n";
logout()<<"csdn: "<<"boonion"<<"\n";
logout()<<"csdn: "<<"boonion"<<"\n";
return a.exec();
}