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

核心代码

  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 %sn",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);//释放独占访问  }

好了,这篇文章就结束到这,后续<计算机技术网(www.ctvol.com)!!>小编会为大家提供更多的代码。

—-想了解C++ 格式化日志输出实现代码分享!全部内容且更多的C语言教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/482916.html

(0)
上一篇 2020年11月9日
下一篇 2020年11月9日

精彩推荐