常用的日志信息的宏

来源:互联网 发布:暴风tv电视怎么样知乎 编辑:程序博客网 时间:2024/06/07 05:47


#if defined (DRM_LOG_MSG_S)#define _D_LOG_DIR"./LOG"#define PLAY_MSG_LOG(X){\if(NULL != (X)) {\char tempbuf[30];struct tm ti;\FILE *file =NULL;__time64_t long_time;\_mkdir(_D_LOG_DIR);_time64( &long_time );  \        _localtime64_s(&ti, &long_time );\sprintf_s(tempbuf,sizeof(tempbuf),"%s/%d-%d-%d.LOG",_D_LOG_DIR,ti.tm_year+1900,ti.tm_mon+1,ti.tm_mday);\fopen_s(&file,tempbuf,"a+b");\_strtime_s(tempbuf,sizeof(tempbuf));\sprintf_s(tempbuf,sizeof(tempbuf),"%s: ",tempbuf);\fwrite(tempbuf,sizeof(char),strlen(tempbuf),file);\fwrite((X),sizeof(char),strlen(X),file);\fwrite("\r\n",sizeof(char),strlen("\r\n"),file);\fclose(file);\}\}#else#define PLAY_MSG_LOG(X)#endif



#if defined (DRM_DEB_MSG_S)#define PRIN_MSG(X)fprintf(stdout,"MSG:%s--end",(X))#else#define PRIN_MSG(X)#endif


class CDebugLog{private:FILE * file;enum { LOGPATHLEN = 50 };char  pathDir[LOGPATHLEN] ;char  logNam[LOGPATHLEN/2];__time64_t openTime;public:CDebugLog(const char* pathDir="./LOG"):file(0),openTime(0){memset(this->pathDir,0,sizeof(this->pathDir));memset(this->logNam,0,sizeof(this->logNam));strcpy_s(this->pathDir,sizeof(this->pathDir),pathDir);}bool OpenLog(){struct tm ti;__time64_t long_time;_mkdir(pathDir);_time64( &long_time ); _localtime64_s(&ti, &long_time );sprintf_s(pathDir,sizeof(pathDir),"%s/%d-%d-%d.LOG",pathDir,ti.tm_year+1900,ti.tm_mon+1,ti.tm_mday);if(fopen_s(&file,pathDir,"a+b"))return false;return true ;}bool WriteLog(char * msgLog, size_t logLen){if(!file)return false;_strtime_s(pathDir); //此时pathDir做为保存时间,如:14:37:49sprintf_s(pathDir,sizeof(pathDir),"%s: ",pathDir);fwrite(pathDir,sizeof(char),strlen(pathDir),file);fwrite(msgLog,sizeof(char),logLen,file);fwrite("\r\n",sizeof(char),strlen("\r\n"),file);return true ;}~CDebugLog(){fclose(file);}};

输出:

文件名:2012-8-28.LOG

内容格式:

20:46:40: hello 
20:46:40: hello 


原创粉丝点击