资源简介
参考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
- 上一篇:GRACE水储量解算与滤波程序代码-杜劲松
- 下一篇:(C版)郝斌 数据结构课程笔记
相关资源
- 酒店管理系统基于Qt Creator5)
- 《Visual Prolog 集成开发环境(下)》
- 《Visual Prolog 基础类》 中文参考.chm
- uboot到linux logo显示不间断 补丁
-
大数据。基于Hba
se的网站日志分析系 - 基于MIPS指令集的32位CPU设计与Verilog语
- Verilog FPGA UART串口控制器
- gmsk调制在FPGA上实现
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- 一个简单的verilog编写的DMA IP CORE,和
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- 使用OpenFileDialog打开文件对话框.rar
- 硬件课程设计—流水灯(quartus软件
- C 餐厅叫号系统(QT平)
- QT 实现文件下载
- qt图像处理
- Verilog按键代码
- clear3389.rar
- verilog的PCI源代码,非常详细,顶层模
- QT,JPEG解码源代码(已完成)
- slf4j-log4j12-1.5.2.jar架包.rar
- CPLD Verilog数字密码锁 源码
- Qt 播放音频文件
- verilog 实现任意分频方法
- DE2模拟的交通红绿灯
- bmp2c
- 八皇后schemeprolog实现
评论
共有 条评论