Common.h線程不安全版本舊版(對接口的技術(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)行中。
#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)查看詳情吧