#pragma once
#ifdef _WINDOWS_
#pragma warning(disable : 4996)
#endif
//日志消息回调函数
typedef void (*TDll_Log)(
LPVOID lpContext, //环境变量
LPCSTR lpszMsg, //日志消息
int nLevel //日志等级
);
class TDllLog
{
public:
//构造函数
TDllLog(const char *lpszFile, int nLine, int nLevel);
//操作符"()"的重载
void operator()(const char *pszFmt, ...) const;
// 注册日志回调函数
static void TDll_RCFLog(
TDll_Log pLogFun=NULL, //日志信息回调函数指针
LPVOID lpContext=NULL //环境变量
);
private:
const char * m_lpszFile; //源文件路径
const int m_nLine; //行号
const int m_nLevel; //日志等级
static TDll_Log g_LogFun;
static LPVOID g_lpLog;
};
//以下是用于输出日志的一组宏
#define DllLogN(n) TDllLog(__FILE__, __LINE__, n)
#ifndef Log
#define Log DllLogN(1000)
#endif // Log
Log("Hello") DllLogN(1000) TDllLog(__FILE__, __LINE__, 1000)("Hello")