#include<stdio.h>
#include<stdarg.h>
#define INT32 int
#define UINT8 char
#define Fatal (0)
#define Error (1)
#define Warning (2)
#define Info (3)
#define Debug (4)
#define MAX_LogSvrPrint_SIZE 1000 //日志的最大长度
#define g_LogSvrPrintfLevel 2 //从配置文件读取
/******************************************************************
函数名称:LogPrintf
功能描述:LogSvr模块本身的日志输出函数
输入参数:UINT8 blevel : 日志级别
void *pbMsg : 要打印的日志信息
... : 要输出值的变量,可加多个
输出参数:无
返回值 :0 : 成功 非零值 : 失败
其他说明:
修改日期 版本号 修改人 修改内容
------------------------------------------------------------------
******************************************************************/
INT32 LogPrintf(UINT8 blevel, void *pbMsg, ...)
{
va_list argptr;
UINT8 * pTempData = NULL;
UINT8 buffer[MAX_LogSvrPrint_SIZE] = {0};
if(blevel > g_LogSvrPrintfLevel)
{
return -1;
}
va_start(argptr, pbMsg);//将第一个可变参数的地址付给argptr,即:argptr指向它
#ifdef WIN32
_vsnprintf(buffer, MAX_LogSvrPrint_SIZE, pbMsg, argptr);
#else
vsnprintf(buffer, MAX_LogSvrPrint_SIZE, pbMsg, argptr);
#endif
pTempData = buffer;
printf(pTempData);
fflush(stdout);
return 0;
}
int main()
{
int sum = 100;
freopen("LogSvr.log","w", stdout);
LogPrintf(Fatal,"main get.....!\n");
LogPrintf(Fatal, "sum = %d\n", sum);
fclose(stdout);
return 0;
}