ACE的logManager的ACE_TRACE不显示问题解决方法

转自 http://www.cppblog.com/yeqing/archive/2006/08/07/10918.aspx?opt=admin
 
ACE_TRACE无法显示消息

我用的是APG自带的例子。无论在Windows和Linux操作系统下面都无法输出ACE_TRACE的信息?

源码:
----------------------------------------------------------
#include "ace/Log_Msg.h"

void foo (void);

int ACE_TMAIN (int, ACE_TCHAR *[])
{
ACE_TRACE(ACE_TEXT ("main"));

ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IHi Momn")));
foo();
ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IGoodnightn")));

return 0;
}

void foo (void)
{
ACE_TRACE (ACE_TEXT ("foo"));

ACE_DEBUG ((LM_INFO, ACE_TEXT ("%IHowdy Pardnern")));
}

输出:
---------------------------------------------------------
[root@myserver projs]# ./tmp
Hi Mom
Howdy Pardner
Goodnight

需要设置宏ACE_NTRACE,默认状态是不记录TRACE信息的。
#define ACE_NTRACE 0  记录日志
#define ACE_NTRACE 1  不记录日志

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

error:
记住不要把上面的顺序给写反呢
写成了:
#include "ace/Log_Msg.h"
#define ACE_NTRACE 0

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

你可能感兴趣的:(windows,linux)