真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++線程安全的日志接口-創(chuàng)新互聯(lián)

C++ 線程安全的日志接口

線程不安全版本舊版(對接口的技術(shù)點進(jìn)行詳解)鏈接:https://blog.csdn.net/qq135595696/article/details/127467597

創(chuàng)新互聯(lián)是一家專業(yè)提供江西企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都做網(wǎng)站、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為江西眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
Common.h
#pragma once

enum class NET_UV_LOG_TYPE {NET_UV_LOG_INFO,
    NET_UV_LOG_WARNING,
    NET_UV_LOG_ERROR,
    NET_UV_LOG_FATAL
};

//線程安全日志接口
void NetUVLog(NET_UV_LOG_TYPE type, const char* pFunc,
    int len, const char* format, ...);

//線程安全日志接口宏定義
#define NET_UV_LOG_INFO(format, ...) \
    NetUVLog(NET_UV_LOG_TYPE::NET_UV_LOG_INFO, __FUNCTION__,    \
        __LINE__, format,  ##__VA_ARGS__)

#define NET_UV_LOG_WARNING(format, ...) \
    NetUVLog(NET_UV_LOG_TYPE::NET_UV_LOG_WARNING, __FUNCTION__, \
        __LINE__, format,  ##__VA_ARGS__)

#define NET_UV_LOG_ERROR(format, ...) \
    NetUVLog(NET_UV_LOG_TYPE::NET_UV_LOG_ERROR, __FUNCTION__,   \
        __LINE__, format,  ##__VA_ARGS__)

#define NET_UV_LOG_FATAL(format, ...) \
    NetUVLog(NET_UV_LOG_TYPE::NET_UV_LOG_FATAL,__FUNCTION__,    \
        __LINE__, format,  ##__VA_ARGS__)
Common.cpp
#include "Common.h"

static const char* gs_netUvLogName[4] = {"INFO",
    "WARNING",
    "ERROR",
    "FATAL"
};

static std::mutex gs_printfMutex;


static void _SetColor(unsigned short forecolor = 4,
    unsigned short backgroudcolor = 0) {HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);             //獲取緩沖區(qū)句柄
    SetConsoleTextAttribute(hCon, forecolor | backgroudcolor); //設(shè)置文本及背景色
}

//線程安全日志接口
void NET_UV::NetUVLog(NET_UV_LOG_TYPE type, const char* pFunc,
    int len, const char* format, ...) {va_list args;
    time_t  timer;
    char userData[LOG_BUF_LEN];
    char logTime[TIME_BUF_LEN];
    std::string logInfo;

    va_start(args, format);
    vsnprintf(userData, LOG_BUF_LEN, format, args);
    va_end(args);

    time(&timer);
    strftime(logTime, TIME_BUF_LEN, "%Y-%m-%d %H:%M:%S", localtime(&timer));

    logInfo = logTime;
    logInfo.append(" [NET-UV]-[");
    logInfo.append(gs_netUvLogName[(int)type]);
    logInfo.append("] ");

    //函數(shù)名
    logInfo.append("[");
    logInfo.append(pFunc);
    logInfo.append("] ");

    //行號
    logInfo.append("[");
    logInfo.append(std::to_string(len));
    logInfo.append("] ");

    logInfo.append(userData);

    //默認(rèn)顏色
    _SetColor(FOREGROUND_INTENSITY | FOREGROUND_RED |
        FOREGROUND_GREEN | FOREGROUND_BLUE);
    if (type == NET_UV_LOG_TYPE::NET_UV_LOG_ERROR) {//設(shè)置紅色
        _SetColor(FOREGROUND_INTENSITY, FOREGROUND_RED);
    }
    else if (type == NET_UV_LOG_TYPE::NET_UV_LOG_INFO) {//設(shè)置綠色
        _SetColor(FOREGROUND_INTENSITY, FOREGROUND_GREEN);
    }
    
    do {std::lock_guard__(gs_printfMutex);
        printf("%s", logInfo.c_str());
    } while (false);
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)頁名稱:C++線程安全的日志接口-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://weahome.cn/article/dojsjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部