写了个log类。但是越写越觉得不对劲,越写发现越需要扩充。。
最大的问题是发现封装成类后反而别扭- -主要应该还是自己功底不够吧。
最后用C语言,InitLog(),WriteLog(),CloseLog(). 三个函数搞定。暂且满足程序的需要,虽然CloseLog()这个函数也不是必须地,不过加上能让跟踪出的log信息更完整吧。
//////////////////////////////////////////////////////////////////////////////////////////
//wde_log.h
//////////////////////////////////////////////////////////////////////////////////////////
#ifndefWDE_LOG_H
#defineWDE_LOG_H
#include<windows.h>
#include<cstdio>
usingnamespacestd;
#defineLOGFILENAME“log.txt”
voidOpenLog();
voidGameLog(constchar*p_Message,boolp_bNeedTime=true);
voidCloseLog();
#endif
//////////////////////////////////////////////////////////////////////////////////////////
//wde_log.cpp
//////////////////////////////////////////////////////////////////////////////////////////
#include“wde_Log.h”
voidOpenLog()
{
FILE*logfile;
logfile=fopen(LOGFILENAME,“w”);
if(!logfile)
{
MessageBox(NULL,“无法创建日志文件,程序终止”,“ERROR”,MB_OK);
return;
}
fputs(”打开应用程序日志文件/n”,logfile);
fputs(”———————————————————————-/n”,logfile);
}
voidGameLog(constchar*p_Message,boolp_bNeedTime/*=true*/)
{
FILE*writelog;
writelog=fopen(LOGFILENAME,“a+”);
if(!writelog)
{
MessageBox(NULL,”无法写入日志文件,程序终止”,“ERROR”,MB_OK);
return;
}
staticSYSTEMTIMECurrentTime;
GetLocalTime(&CurrentTime);
if(p_bNeedTime)
{
fprintf(writelog,”%2d/%2d/%4d“,CurrentTime.wMonth,CurrentTime.wDay,CurrentTime.wYear);
fprintf(writelog,”%2d:%2d:%2d“,CurrentTime.wHour,CurrentTime.wMinute,CurrentTime.wSecond);
}
fputs(p_Message,writelog);
}
voidCloseLog()
{
FILE*closefile;
closefile=fopen(LOGFILENAME,“a+”);
if(!closefile)
{
MessageBox(NULL,”无法写入日志文件,程序终止”,“ERROR”,MB_OK);
return;
}
fputs(”———————————————————————-/n”,closefile);
fputs(”关闭应用程序日志文件/n”,closefile);
}
//////////////////////////////////////////////////////////////////////////////////////////
//wde_log.h
//////////////////////////////////////////////////////////////////////////////////////////
#ifndefWDE_LOG_H
#defineWDE_LOG_H
#include<windows.h>
#include<cstdio>
usingnamespacestd;
#defineLOGFILENAME“log.txt”
voidOpenLog();
voidGameLog(constchar*p_Message,boolp_bNeedTime=true);
voidCloseLog();
#endif
//////////////////////////////////////////////////////////////////////////////////////////
//wde_log.cpp
//////////////////////////////////////////////////////////////////////////////////////////
#include“wde_Log.h”
voidOpenLog()
{
FILE*logfile;
logfile=fopen(LOGFILENAME,“w”);
if(!logfile)
{
MessageBox(NULL,“无法创建日志文件,程序终止”,“ERROR”,MB_OK);
return;
}
fputs(”打开应用程序日志文件/n”,logfile);
fputs(”———————————————————————-/n”,logfile);
}
voidGameLog(constchar*p_Message,boolp_bNeedTime/*=true*/)
{
FILE*writelog;
writelog=fopen(LOGFILENAME,“a+”);
if(!writelog)
{
MessageBox(NULL,”无法写入日志文件,程序终止”,“ERROR”,MB_OK);
return;
}
staticSYSTEMTIMECurrentTime;
GetLocalTime(&CurrentTime);
if(p_bNeedTime)
{
fprintf(writelog,”%2d/%2d/%4d“,CurrentTime.wMonth,CurrentTime.wDay,CurrentTime.wYear);
fprintf(writelog,”%2d:%2d:%2d“,CurrentTime.wHour,CurrentTime.wMinute,CurrentTime.wSecond);
}
fputs(p_Message,writelog);
}
voidCloseLog()
{
FILE*closefile;
closefile=fopen(LOGFILENAME,“a+”);
if(!closefile)
{
MessageBox(NULL,”无法写入日志文件,程序终止”,“ERROR”,MB_OK);
return;
}
fputs(”———————————————————————-/n”,closefile);
fputs(”关闭应用程序日志文件/n”,closefile);
}
//////////////////////////////////////////////////////////////////////////////////////////
本文介绍了一个使用C语言实现的简易日志系统,通过三个独立函数完成日志的开启、记录与关闭操作,适用于小型应用的日志记录需求。
4028

被折叠的 条评论
为什么被折叠?



