91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

參考https://blog.csdn.net/linkedin_38454662/article/details/72921025異步LOG實現原理用qt實現的簡單異步寫日志文件

資源截圖

代碼片段和文件信息

#include?“LogSys.h“

#include?
#include?

LogSys?*LogSys::_pInstance?=?NULL;
QMutex?LogSys::_mutex;
QMutex?LogSys::_queueMutex;

LogSys::LogSys()
{

}

LogSys?*LogSys::getInstance()
{
????if?(NULL?==?_pInstance)?{
????????QMutexLocker?locker(&_mutex);?//?雙檢測
????????if?(NULL?==?_pInstance)?{
????????????_pInstance?=?new?LogSys;
????????}
????}

????return?_pInstance;
}

void?LogSys::addLogD(const?char?*format?...)
{
????QString?logStr?=?“[D]“;
????logStr?+=?getLogExtInfo();
//????logStr?+=?format;

????va_list?argList;
????va_start(argList?format);
????QString?argStr;
????argStr.vsprintf(format?argList);
????va_end(argList);
????logStr?+=?argStr;

????logStr?+=?“\n“;
????QMutexLocker?locker(&_queueMutex);
????_logQueue.push_back(logStr);
}

void?LogSys::addLogW(const?char?*format?...)
{
????QString?logStr?=?“[W]“;
????logStr?+=?getLogExtInfo();
//????logStr?+=?format;

????va_list?argList;
????va_start(argList?format);
????QString?argStr;
????argStr.vsprintf(format?argList);
????va_end(argList);
????logStr?+=?argStr;

????logStr?+=?“\n“;
????QMutexLocker?locker(&_queueMutex);
????_logQueue.push_back(logStr);
}

void?LogSys::addLogE(const?char?*format?...)
{
????QString?logStr?=?“[E]“;
????logStr?+=?getLogExtInfo();
//????logStr?+=?format;

????va_list?argList;
????va_start(argList?format);
????QString?argStr;
????argStr.vsprintf(format?argList);
????va_end(argList);
????logStr?+=?argStr;

????logStr?+=?“\n“;
????QMutexLocker?locker(&_queueMutex);
????_logQueue.push_back(logStr);
}

void?LogSys::addLogI(const?char?*format?...)
{
????QString?logStr?=?“[I]“;
????logStr?+=?getLogExtInfo();
//????logStr?+=?format;

????va_list?argList;
????va_start(argList?format);
????QString?argStr;
????argStr.vsprintf(format?argList);
????va_end(argList);
????logStr?+=?argStr;

????logStr?+=?“\n“;
????QMutexLocker?locker(&_queueMutex);
????_logQueue.push_back(logStr);
}

QString?LogSys::getLogPop()
{
????if?(_logQueue.isEmpty())
????????return?““;
????QString?ret?=?_logQueue.front();
????QMutexLocker?locker(&_queueMutex);
????_logQueue.pop_front();
????return?ret;
}

QString?LogSys::getLogExtInfo()
{
????QString?timeStr?=?QDateTime::currentDateTime().toString(“[yyyy-MM-dd?hh:mm:ss]“);
????return?timeStr;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-07?17:46??LogSys\
?????文件?????????359??2019-01-07?14:02??LogSys\LogApi.h
?????文件????????2383??2019-01-07?17:46??LogSys\LogSys.cpp
?????文件?????????625??2019-01-07?14:00??LogSys\LogSys.h
?????文件?????????146??2019-01-07?12:52??LogSys\LogSys.pri
?????文件?????????982??2019-01-07?16:28??LogSys\LogThread.cpp
?????文件?????????407??2019-01-07?13:40??LogSys\LogThread.h

評論

共有 條評論