logthread.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "logthread.h"
  2. LogThread::LogThread(QObject *parent) :
  3. QThread(parent)
  4. {
  5. keep = false;
  6. dataList.clear();
  7. wrongList.clear();
  8. // printf("logthread init\n");
  9. QDir dir("/var/log/usky");
  10. if(!dir.exists())
  11. dir.mkdir("/var/log/usky");
  12. file = new QFile("/var/log/usky/jd_video-"+QDate::currentDate().toString("yyyyMMdd")+".log");
  13. wfile = new QFile("/var/log/usky/err_video.log");
  14. day = QDate::currentDate().day();
  15. }
  16. void LogThread::appendData(QString data)
  17. {
  18. dataList.append(data);
  19. }
  20. void LogThread::appendWrongData(QString data)
  21. {
  22. wrongList.append(data);
  23. }
  24. void LogThread::stop()
  25. {
  26. keep = false;
  27. }
  28. void LogThread::run()
  29. {
  30. // printf("log thread start\n");
  31. QString log = QString("ytCamCore start at %1.\r\n").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz"));
  32. printf("%s\n",log.toUtf8().data());
  33. if(file->open(QIODevice::ReadWrite|QIODevice::Append|QIODevice::Text)){
  34. file->write(log.toUtf8());
  35. file->close();
  36. }
  37. keep = true;
  38. while(keep){
  39. if(dataList.length()>0){
  40. if(day!=QDate::currentDate().day()){
  41. day = QDate::currentDate().day();
  42. file = new QFile("/var/log/usky/jd_video-"+QDate::currentDate().toString("yyyyMMdd")+".log");
  43. }
  44. if(file->open(QIODevice::ReadWrite|QIODevice::Append|QIODevice::Text)){
  45. while(dataList.length()>0){
  46. file->write(dataList.first().toUtf8());
  47. file->write("\r\n");
  48. dataList.removeFirst();
  49. usleep(1000);
  50. }
  51. file->close();
  52. }
  53. }
  54. if(wrongList.length()>0){
  55. if(wfile->open(QIODevice::ReadWrite|QIODevice::Append|QIODevice::Text)){
  56. while(wrongList.length()>0){
  57. wfile->write(wrongList.first().toUtf8());
  58. wfile->write("\r\n");
  59. wrongList.removeFirst();
  60. usleep(1000);
  61. }
  62. wfile->close();
  63. }
  64. }
  65. usleep(50000);
  66. }
  67. }