c++实现异步消息队列日志分享(记录自己做的小项目)

实现了异步的日志,不消耗工作线程时间。

1.  创建日志线程对消息日志打印在文件上,利用条件变量作为线程通信的方式,并且用互斥锁保证消息队列的线程安全。

2. 采用单例设计模式。

3. 类的析构函数将负责处理所有存储消息,停止日志,然后做内存的释放,让用户使用简单方便,让日志跟进程的状态同步。

头文件

#pragma once 
#include "lockqueue.h"

#include <bits/types/FILE.h>
#include <iostream>
#include <string>
#include <cstdio>
#include <mutex>
#include <condition_variable>
#include<queue>
#include<memory>

enum LogLevel
{
    INFO,   //普通信息
    ERROR,  //错误信息
};

//单例
//Mprpc框架日志系统
//定义宏
#define LOG_INFO(logmsgformat,...) \
    do \
    {\
        Logger &logger = Logger::GetInstance();\
        logger.SetLogLevel(INFO); \
        char c[1024]={0};\
        snprintf(c,1024,logmsgformat, ##__VA_ARGS__);\
        logger.Log(c);    \
    }while(0);

#define LOG_ERR(logmsgformat,...) \
    do \
    {\
        Logger &logger = Logger::GetInstance
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值