#include "logthread.h"

LogThread::LogThread(QObject *parent) :
    QThread(parent)
{
    dataList.clear();
    QDir dir("/usky/dmp/log");
    if(!dir.exists())
        system("mkdir -p /usky/dmp/log");
    file = new QFile("/usky/dmp/log/verserver-"+QDate::currentDate().toString("yyyyMMdd")+".log");
    day = QDate::currentDate().day();
}

void LogThread::appendData(QString data)
{
    dataList.append(data);
}

void LogThread::run()
{
    file = new QFile("/usky/dmp/log/verserver-"+QDate::currentDate().toString("yyyyMMdd")+".log");
    if(file->open(QIODevice::ReadWrite|QIODevice::Append|QIODevice::Text)){
        file->write(QString("ytDmpVersionServer start at %1.\r\n").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz")).toUtf8());
        file->close();
    }

    while(1){
        if(dataList.length()>0){
            if(day!=QDate::currentDate().day()){
                day = QDate::currentDate().day();
                file = new QFile("/usky/dmp/log/verserver-"+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");
                    dataList.removeFirst();
                    usleep(1000);
                }
                file->close();
            }
        }
        usleep(50000);
    }
}

