核心代码
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);//释放独占访问
}
好了,这篇文章就结束到这,后续亿速云小编会为大家提供更多的代码。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。