现在的位置: 首页 > 综合 > 正文

ACE篇之一:使用ACE日志设施

2013年09月24日 ⁄ 综合 ⁄ 共 1315字 ⁄ 字号 评论关闭

http://hi.baidu.com/qingshanyin/blog/item/39cf898149190bdebc3e1eef.html

 

1、前言:

使用ACE日志设施的主要宏如下:

ACE_DEBUG(常用):用于调试语句

ACE_ERROR(常用):用于警告和错误

ACE_TRACE:用于跟踪信息

2、新建控制台项目Log_Practice(vs2008)

3、删除自动生成的其它所有文件,仅仅保留Log_Practice.cpp文件

4、修改Log_Practice.cpp文件

// Log_Pratice.cpp : 定义控制台应用程序的入口点。
//

#include "ace/Log_Msg.h"

void foo(void);

int ACE_TMAIN(int, ACE_TCHAR *[])
{

//设置输出的严重级别

//ACE_LOG_MSG->priority_mask(LM_DEBUG|LM_NOTICE|LM_INFO|LM_TRACE,ACE_Log_Msg::PROCESS);

ACE_TRACE(ACE_TEXT("main"));
ACE_DEBUG((LM_INFO,ACE_TEXT("%IHi Mom/n")));
foo();
ACE_DEBUG((LM_INFO,ACE_TEXT("%IGoodnight/n")));

return 0;
}
void foo(void)
{
ACE_TRACE(ACE_TEXT("foo"));

ACE_DEBUG((LM_INFO,ACE_TEXT("%IHowdy Pardner/n")));
}

5、修改项目属性:

(1)C/C++属性

常规--附加包含目录:$(ACE_ROOT)

代码生成:多线程调试Dll(MDd)

预编译头:不使用预编译头

(2)链接器

常规--附加库目录:$(ACE_ROOT)/lib

输入--附加依赖项:ACEd.lib

高级--随机基址:禁用映象随机化

高级--数据执行保护:默认值

6、计算机环境变量

增加ACE_ROOT,设置其值为:D:/ACE_5.6/ACE_Wrappers

在Path变量中增加:D:/ACE_5.6/ACE_Wrappers/bin和D:/ACE_5.6

7、编译项目

8、在控制台中执行Log_Practice.exe输出:
Hi Mom
Howdy Pardner
Goodnight

发现ACE_TRACE不起作用,查书,发现默认情况下该功能是关闭的,解决办法:

可以使用一下两种方法解决问题:
(1)、修改文件代码
#define ACE_NTRACE 0
#include "ace/Log_Msg.h"

(2)、在编译命令上增加定义宏的命令
可以增加如下选项 -DACE_NTRACE

小结:

1、#include "ace/Log_Msg.h"中包含很多宏,其中就包括ACE_DEBUG等大量的调试宏,可以令编程变得轻松。

2、ACE_Log
_Msg::PROCESS---获取或设置进程范围的掩码,会影响所以ACE_Log_Msg实例的日志严重性ACE_Log_Msg::THREAD--线程专有掩码设置,若是要在ACE_Log_Msg实例上设置个别的严重性掩码时,这第二个参数就非常重要

抱歉!评论已关闭.