通用的应用程序高级日志系统
2009-03-16 20:02:17 来源:WEB开发网本文示例源代码或素材下载
原文出处:Advanced Logging for all kind of applications
日志模块
本文介绍的日志系统包括七个 C++ 类:CLog, CFuncLog, IStoreLog, CWinLog, CFileLog, CAutoCritic, CLogSimpleLock。CLog 是所有日志模块中最主要的一个类,在大多数情况下,这个类在应用程序中最好是单实例的。但并不是必须的。重要性其次的一个类是 CFuncLog,这个类用于对函数调用的进入和退出进行记录。当然开发人员也可以使用这个类对任何数据进行日志记录。该类重载了 << 操作符,所以使用很方便。
下图是本文介绍的日志系统使用截图
日志模块的 UML 设计
从下图可以看到,日志模块类可以分成两个部分:
1. Storage 类 —— 存储类
2. Logging 类 —— 日志类
图一 UML 设计的类继承图
存储类:
IStoreLog 类的声明
/////////////////////////////////////////////////////////
// 此类是为一个抽象类,建立三个默认的函数,以便支持所有子类,
// 任何子类都必须支持缓冲和非缓冲存储
/////////////////////////////////////////////////////////
class IStoreLog
{
public:
virtual ~IStoreLog( void ){}; // 虚拟析构函数
virtual int FlushData() = 0;
virtual int WriteString( const std::string &Message ) = 0;
virtual int SetBufferLimit( long lSize ) = 0;
};
更多精彩
赞助商链接