WEB开发网
开发学院软件开发VC 通用的应用程序高级日志系统 阅读

通用的应用程序高级日志系统

 2009-03-16 20:02:17 来源:WEB开发网   
核心提示: CLog 构造函数的第一个参数必须是 IStoreLog 接口指针,日志模块中有两个 IStoreLog 实现:一个是 CWinLog,通用的应用程序高级日志系统(4),另一个是 CFileLog,前者创建 GUI 窗口,并在名字空间 LOGGER 中使用,你可以通过其它的 IStoreL

CLog 构造函数的第一个参数必须是 IStoreLog 接口指针。日志模块中有两个 IStoreLog 实现:一个是 CWinLog,另一个是 CFileLog。前者创建 GUI 窗口,并在窗口中显示日志信息,后者将日志信息存储到文件中。由于输出文件可被用于任何 OS 设备或命名管道等,它使用 CreateFile API 函数处理。

CLog 构造函数的第二个参数是日志信息的级别,可以根据需要来设置。所以,如果将它设置为 0,则输出日志仅为 ERROR 信息。如果设置为 1,则日志输出为 ERROR 和 WARNING 信息.....

第三个参数针对 CLog 实例的,说明这个实例是否为 IStoreLog 的父类。缺省值为 true。所以 CLog 类的析构函数要删除 IStoreLog 类的实例。

如果你想要日志函数的进入和退出,可以向下面这样:

CRepTestApp::CRepTestApp()
{

CFuncLog log( m_pLog, "CRepTestApp::CRepTestApp" );

...
}

上面的代码将在进入函数和退出函数时记录日志。这里使用了自动变量的特性。进入函数时,构造函数记录“enter.....”信息,退出函数时,析构函数在日志中记录“leave......”,如果还想添加其它的日志信息,可以用如下代码:

int something = 100;
log << something;
...

警告:操作符 << 以原始格式存储日志信息。

使用 CFuncLog 类的 LogString 可以很容易添加需要的信息到日志中。

如果你想要将存储到其它地方,那么必须自己实现 IStoreLog 类,并用其实例作为某个构造函数的参数。CAutoCritic 和 CLogSimpleLock 类是对 Windows 临界区 API 的封装。这个类是在单独的文件中实现的,并在名字空间 LOGGER 中使用。你可以通过其它的 IStoreLog 类灵活使用。

具体细节和应用例子请参考源代码。

上一页  1 2 3 4 

Tags:通用 应用程序 高级

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接