logSvr的日志打印函数

来源:互联网 发布:剑灵人族捏脸数据分享 编辑:程序博客网 时间:2024/05/16 06:57
 

#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;
}

原创粉丝点击