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实例上设置个别的严重性掩码时,这第二个参数就非常重要