rainfish 发表于 2008-12-27 17:32:26

关于ACE_NTRACE的问题

如果要打开ace_trace,就必须#define ACE_NTRACE 0,但是这样子就会把ACE内部调用的trace全部打印出来了,有没有办法只打印我自己的ACE_TRACE,而不打印ACE内部的,谢谢达人

winston 发表于 2008-12-27 20:23:26

LOG分级呀。多简单的事情。自己仔细看看ACE的log系统。基本上你能想到的,早就做好了。

rainfish 发表于 2008-12-27 22:31:17

回复 #2 winston 的帖子

恩,我现在就是这么做的,
//         ACE_LOG_MSG->priority_mask (LM_INFO | LM_ERROR,
//                 ACE_Log_Msg::PROCESS);

那么ACE_Trace就不太好用了,我用ACE_Stream时打印出很多日志来
谢谢了。

czf0754 发表于 2008-12-29 17:25:40

回复 #3 rainfish 的帖子

winston说的够明白了,最好的方法是跟一下源码,什么都看明白了,
ACE_LOG_MSG->priority_mask (LM_INFO | LM_ERROR,ACE_Log_Msg : : ROCESS);
改为
ACE_LOG_MSG->priority_mask (LM_INFO | LM_ERROR|LM_TRACE,ACE_Log_Msg : : ROCESS);
加了LM_TRACE ,就会打印出TRACE的内容。否则就不会打印。
ACE_LOG_MSG->log(LM_*,...); 第一个参数就是控制消息的类型的呀

dwh0403 发表于 2009-1-5 10:42:58

回复 #4 czf0754 的帖子

对于已经编译好的libACE.so中的函数,虽然使用了ACE_TRACE,但是由于编译的时候默认的Trace功能是关闭的,因此我们调用 libACE.so库中的函数的时候基本上没有Trace打印,对于我们学习和了解整个系统的运行和调用顺序不太有利,如果打开Trace功能,那么需要重新编译ACE库。

config-all.h

// By default tracing is turned off.      // 默认的是关闭,我们只要修改为打开就可以了
#if !defined (ACE_NTRACE)
#define ACE_NTRACE 1--> 0   // 将1修改为0
#endif /* ACE_NTRACE */

不知道你想要的是不是想要类似上面的效果
页: [1]
查看完整版本: 关于ACE_NTRACE的问题