zoukankan      html  css  js  c++  java
  • 格式化日志输出

    格式化日志输出

    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
    ",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);//释放独占访问
    }
    
  • 相关阅读:
    awk例子
    vsftp搭建
    makefile里PHONY的相关介绍
    youget帮助使用手册
    正则表达式全集
    常用的正则表达式
    基本用法
    心情
    asp.net和java
    java and asp.net
  • 原文地址:https://www.cnblogs.com/lzpong/p/3955901.html
Copyright © 2011-2022 走看看