Qt线程实现的一个简单日志打印类
MyLog.h
#ifndef MYLOG_H
#define MYLOG_H
#include <qglobal.h>
#include <qstring.h>
#include <thread>
#include <QObject>
#include <QQueue>
#include <QMutex>
#include <QFile>
#include <QWaitCondition>
#ifdef WIN32
#pragma execution_character_set("utf-8")
#endif
#define WAITFORLOCKMS 5 /*互斥量lock等待时间*/
//外界写日志的宏
#define writeLog(log) (MyLog::Get()->WriteLog(log, __FILE__, __LINE__, __FUNCTION__))
//为日志添加日期时间
#define formatStr(str, file, line, func) QString("%1 [%2 %3: %4]: %5\r\n").arg(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz")).arg(file).arg(line).arg(func).arg(str)
//获取当前日期
#define getCurDate() QString("%1").arg(QDateTime::currentDateTime().toString("yyyyMMdd"))
class QPoint;
class QPointF;
class QRect;
class QRectF;
class CvPoint;
class CvPoint2D32f;
class MyDebugDlg;
class MyLog {
public:
MyLog(); //构造函数, 初始话成员变量
~MyLog(); //析构函数, 释放资源
void WriteLog(const QString &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const bool &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const char &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const signed short &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const unsigned short &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const signed int &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const unsigned int &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const signed long &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const unsigned long &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const qint64 &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const quint64 &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const float &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const double &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const char* t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const QByteArray &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void WriteLog(const QPoint &t, const QString &sFile = "", const int &iLine = -1, const QString &sFunc = ""); //成员函数, 重载函数, 将打印信息加入打印队列中
void Write