Posts Tagged 错误日志

LogToFile 1.1.0 Release

http://blog.kingsamchen.com/archives/546的新版

新版较之旧版改变如下:

1、在保留原有接口的基础上,增加了GetErrorMessage接口。此函数可以由GetLastError得到的错误代码获取错误文本说明,适合Win32平台上的开发

2、考虑到易用性,利用预处理解决掉了不同编译器之间的问题。即是说,在非Win32上,新增加GetErrorMessage接口不会被编译

值得注意的是,由于VC编译器的特殊性,预编译头无法用预处理解决,如果你不使用预编译,则直接删除相应预处理代码即可

3、由于接口函数DeleteFile与Win32 API发生名字重叠,所以新版函数接口改为DeleteLogFile,为了统一,相关函数也做出了修改

4、删去了仅VC支持的Error Stream处理的相关代码

新版函数接口如下

/**************************************************

** Project:LogToFile

** File:logfile.h

** Edition:v1.1.0 Demo

** Coder:KingsamChen [MDSA Group]

** Last Modify:2011-01-26

**************************************************/

#if _MSC_VER > 1000
#pragma  once
#endif

#ifndef _LOGFILE_C6A57B5F_C91D_4fc0_9B38_10524313FAE1
#define _LOGFILE_C6A57B5F_C91D_4fc0_9B38_10524313FAE1

const wchar_t ERRLOG_FILE_NAME[] = L"ErrorLog.log";

void LogErrorToFile(const wchar_t* pszFileName, wchar_t* pszFormat, ...);
void ClearLogFile(const wchar_t* pszFileName);
void DeleteLogFile(const wchar_t* pszFileName);
#ifdef _WIN32
typedef unsigned long ulong;
int GetErrorMessage(ulong ulErrorId, wchar_t* pszMessage, ulong ulBufLen);
#endif

static int WriteFile(const wchar_t* pszFileName, wchar_t* pszStr);

#endif

Download LogToFile_SRC

, , , , ,

6 Comments

C/C++错误日志文件读写——LogFile

RT

对于Release版本的程序来说,记录错误通常只能采用读写日志的方法解决(程序自己的日志或者系统日志),毕竟把所有错误信息用对话框(MessageBox)呈现仍然是一件值得商榷的事情

之前KC也写过类似的东西——DebugToFile。但是事实是,这个东西真的可以说是一个鸡肋

需要MFC支持
文件操作需要生成实例对象
架构设计上存在问题

于是,LogFile诞生了

和DebugToFile不同,LogFile采用单一函数接口的方式提供功能,不需要像类一样产生实例对象才能使用

另一个比较好的地方在于,LogFile采用通用/标准的设计哲学,不过很可惜,由于各种编译器间的兼容问题,未能做到100%的通用化(注意点后面说明)

LogFile提供的函数接口如下:

void LogErrorToFile(const wchar_t* lpszFileName, wchar_t* lpszFormat, …);
void ClearFile(const wchar_t* lpszFileName);
void DeleteFile(const wchar_t* lpszFileName);

LogErrorToFile支持不定参数和格式化命令,其实就是类似printf的格式化输出,并且自动在调试信息后增加一行写入时间

ClearFile清空日志文件,DeleteFile删除日志文件
Read the rest of this entry »

, , , , ,

5 Comments