首页 > 编程 > C++ > 正文

C++ 格式化日志输出实现代码

2020-01-26 13:29:32
字体:
来源:转载
供稿:网友

核心代码

void LogOut(LPCTSTR pFormat, ...){  char LogFile[128]={0};  char str[1024]={0};  FILE** fp=&(ThreadDatas[0].pf);   va_list pArg;   EnterCriticalSection(&cs_log);//独占访问  __try  {    SYSTEMTIME st;    if(ThreadDatas[0].num>100000)//10W条一个文件    {      if(fp)      {        fclose(*fp);        *fp=0;      }      ThreadDatas[0].num=0;    }    if(NULL==*fp)    {      char tstr[20]={0};      //GetSystemTime(&st);      GetLocalTime(&st);      sprintf(LogFile,".//logs//ASR_%04d-%02d-%02d.%02d_%02d_%02d.log",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);      *fp=fopen(LogFile,"a+");      if( NULL==*fp )      {      //printf("Create LogFile faile %s/n",LogFile);        LogEvent("Create LogFile faile %s",LogFile);        return;      }      //else      //LogEvent("Create LogFile %s",LogFile,*fp);    }    GetLocalTime(&st);    sprintf(str,"%04d-%02d-%02d %02d:%02d:%02d.%03d %s",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond,st.wMilliseconds,pFormat);    va_start(pArg, pFormat);    //fprintf(*fp,chMsg);    vfprintf(*fp, str, pArg);    va_end(pArg);    fflush(*fp);  }  __except(EXCEPTION_EXECUTE_HANDLER)  {    LogEvent("Thread Log file Error:%s",LogFile);  }  LeaveCriticalSection(&cs_log);//释放独占访问}

好了,这篇文章就结束到这,后续武林网小编会为大家提供更多的代码。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表