#include "logthread.h" LogThread::LogThread(QObject *parent) : QThread(parent) { keep = false; dataList.clear(); wrongList.clear(); printf("logthread init\n"); QDir dir2("/opt/ytDataProcess/log/"); if(!dir2.exists()) dir2.mkdir("/opt/ytDataProcess/log/"); file = new QFile("/opt/ytDataProcess/log/ytServiceCore-"+QDate::currentDate().toString("yyyyMMdd")+".log"); wfile = new QFile("/opt/ytDataProcess/log/ytServiceCoreErr.log"); day = QDate::currentDate().day(); } void LogThread::appendData(QString data) { dataList.append(data); } void LogThread::appendWrongData(QString data) { wrongList.append(data); } void LogThread::stop() { keep = false; } void LogThread::run() { printf("log thread start\n"); if(file->open(QIODevice::ReadWrite|QIODevice::Append|QIODevice::Text)){ file->write(QString("ytServiceCore start at %1.\r\n").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz")).toUtf8()); file->close(); } keep = true; while(keep){ if(dataList.length()>0){ if(day!=QDate::currentDate().day()){ day = QDate::currentDate().day(); file->setFileName("/opt/ytDataProcess/log/ytServiceCore-"+QDate::currentDate().toString("yyyyMMdd")+".log"); } if(file->open(QIODevice::ReadWrite|QIODevice::Append|QIODevice::Text)){ while(dataList.length()>0){ file->write(dataList.first().toUtf8()); file->write("\r\n"); file->flush(); dataList.removeFirst(); usleep(1000); } file->close(); } } if(wrongList.length()>0){ if(wfile->open(QIODevice::ReadWrite|QIODevice::Append|QIODevice::Text)){ while(wrongList.length()>0){ wfile->write(wrongList.first().toUtf8()); wfile->write("\r\n"); wfile->flush(); wrongList.removeFirst(); usleep(1000); } wfile->close(); } } usleep(50000); } }