核心代码
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);//释放独占访问
}
好了,这篇文章就结束到这,后续小编会为大家提供更多的代码。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)