寫了個log類。但是越寫越覺得不對勁,越寫發現越需要擴充。。
最大的問題是發現封裝成類后反而別扭- -主要應該還是自己功底不夠吧。
最后用C語言,InitLog(),WriteLog(),CloseLog(). 三個函數搞定。暫且滿足程序的需要,雖然CloseLog()這個函數也不是必須地,不過加上能讓跟蹤出的log信息更完整吧。
第一次來寫博客,我是菜鳥,不懈努力的菜鳥。
//////////////////////////////////////////////////////////////////////////////////////////
//wde_log.h
//////////////////////////////////////////////////////////////////////////////////////////
#ifndef WDE_LOG_H
#define WDE_LOG_H
#include <windows.h>
#include <cstdio>
using namespace std;
#define LOGFILENAME “log.txt”
void OpenLog();
void GameLog(const char* p_Message, bool p_bNeedTime = true);
void CloseLog();
#endif
//////////////////////////////////////////////////////////////////////////////////////////
//wde_log.cpp
//////////////////////////////////////////////////////////////////////////////////////////
#include “wde_Log.h”
void OpenLog()
{
FILE *logfile;
logfile = fopen(LOGFILENAME, “w”);
if (!logfile)
{
MessageBox(NULL, “無法創建日志文件,程序終止”, “ERROR”,MB_OK);
return;
}
fputs(”打開應用程序日志文件\n”,logfile);
fputs(”———————————————————————-\n”,logfile);
}
void GameLog(const char* p_Message, bool p_bNeedTime /* = true */)
{
FILE *writelog;
writelog = fopen(LOGFILENAME, “a+”);
if (!writelog)
{
MessageBox(NULL,”無法寫入日志文件,程序終止”, “ERROR”, MB_OK);
return;
}
static SYSTEMTIME CurrentTime;
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);
}
void CloseLog()
{
FILE *closefile;
closefile = fopen(LOGFILENAME, “a+”);
if (!closefile)
{
MessageBox(NULL,”無法寫入日志文件,程序終止”, “ERROR”, MB_OK);
return;
}
fputs(”———————————————————————-\n”,closefile);
fputs(”關閉應用程序日志文件\n”,closefile);
}
//////////////////////////////////////////////////////////////////////////////////////////
posted on 2007-09-09 21:40
風在奔跑 閱讀(639)
評論(5) 編輯 收藏 引用 所屬分類:
程序設計與算法