有关ace中%I的使用

kaphoon 2004-03-28 03:56:20
偶在vc6.0上编译ace程序

#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 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")));
}

已知%I是自动缩进,但是显示结果没有这个功能
请问这是为什么?
...全文
84 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaphoon 2004-03-30
  • 打赏
  • 举报
回复
ACE_TRACE没有自动缩进
就算ACE_TRACE可以缩进~~~~~~~
(但事实上输出结果都靠最左边)


尽管自动缩进有没有都无所谓,或者可以自己加\t,能实现
但是这种实现比较丑陋
(%I时根据嵌套深度,步步缩进的,比较好)


Darkay_Lee 2004-03-30
  • 打赏
  • 举报
回复
我同意楼主的看法,%I是个好注意,尤其是嵌套日志输出的时候特别有效,否则代码写起来特别恶心(我现在就是自己负责缩进的,代码好难看啊)。

刚才看了一下代码,indent是需要调用函数:
int ACE_Log_Msg::inc (void)
来增加indent的,每次inc一次就添加4个空格(或者定义了宏ACE_HAS_TRACE的话,是函数set_nesting_indent设置的大小)。
如下:
#include "ace/Log_Msg.h"

void foo (void);

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

ACE_Log_Msg::instance()->inc();
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")));
}
merlinran 2004-03-29
  • 打赏
  • 举报
回复
%I有很大用处吗?
ACE_TRACE不是有缩进吗?看看它的实现,会有线索的。
kaphoon 2004-03-29
  • 打赏
  • 举报
回复
我确信有%I
而且其他%T,%t那些
都能有显示效果~~~~~~~~
sharkhuang 2004-03-28
  • 打赏
  • 举报
回复
你看看他的doc帮助最后一张吧!把他作处理的所有%符号全部列出来了

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧