写了一个用来写log信息的小程序
2007-09-10 13:33
316 查看
写了个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);
}
//////////////////////////////////////////////////////////////////////////////////////////
最大的问题是发现封装成类后反而别扭- -主要应该还是自己功底不够吧。
最后用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);
}
//////////////////////////////////////////////////////////////////////////////////////////
相关文章推荐
- 考虑下列生成二进制的过程,编译器被用来生成单个单元的目标代码,链接器被用来将多个目标单元合并成一个程序二进制,链接器如何改变指令和数据到内存地址的绑定?需要什么信息从编译器传递给链接器,以协助完成链接
- 3、写一个程序,定义一个学生结构体,至少要含4个数据项,其中有一项用来保存学生成绩。用此结构体存储班级上的所有学生信息
- 我这里有一段程序,用来在一个对话框里显示出一次http request的原始信息,不过使用Inet API做的
- 一个简单的将GUI程序的log信息输出到关联的Console窗口中
- 一个简单的将GUI程序的log信息输出到关联的Console窗口中(AllocConsole SetConsoleTitle WriteConsole 最后用ShowWindow(GetConsoleWindow)进行显示)
- 一个简单的将GUI程序的log信息输出到关联的Console窗口中
- Android编程实现捕获程序异常退出时的错误log信息功能详解
- java编写的一个读取图片信息的小程序
- 【8.17】建立一个用来实现求3个数和的类模板(将成员函数定义在类模板的内部),并写出调用此类模板的完整程序。
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- 完成一个学生管理程序,使用学号作为键添加5个学生对象,并可以将全部信息保存在文件中,可以实现对学生信息的学号查找,输出全部学生信息的功能。
- c#程序定期把内存信息记录到log日志示例
- 用Python程序抓取网页的HTML信息的一个小实例
- java程序员菜鸟进阶(八)分享一个爬取B2B网站信息的程序
- 自己制作一个链表用来存储列表信息,并查找当前id信息,找上一条信息,下一条信息(信息浏览的时候方便使用)
- 一个用来恢复被误删除的文件的小程序
- 用Java Swing程序实现的一个中药信息查询程序
- 在MFC程序中,加入一个cpp文件,如果想要打印输出信息的话,用这个语句最便捷
- HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo
- 定义一个“点”(Point)类用来表示三维空间中的点(有三个坐标)。要求如下: (1)可以生成具有特定坐标的点对象。 (2)提供可以设置三个坐标的方法。 (3)提供可以计算该“点”距原点距离平方的方法。 (4)编写主类程序验证。