content_views"
class="htmledit_views">
class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: center;" align="center">color: black; font-family: Verdana; mso-font-kerning: 18.0pt;" lang="EN-US">ACE_DEBUGcolor: black; font-family: 宋体; mso-font-kerning: 18.0pt; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana;">介绍及日志输出
class="MsoNormal" style="margin: 0cm 0cm 0pt;">
class="MsoNormal" style="margin: 0cm 0cm 0pt;">ACE_DEBUGcerun: yes;"> cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">常规的一些输出消息cerun: yes;">
class="MsoNormal" style="margin: 0cm 0cm 0pt;">ACE_ERRORcerun: yes;"> cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">会提供程序出错的一些低级消息
class="MsoNormal" style="margin: 0cm 0cm 0pt;">
class="MsoNormal" style="margin: 0cm 0cm 0pt;">2cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">个宏的用法上是一致的
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_DEBUG(cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">错误级别,"cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">格式串",cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">变量1...cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">变量Ncii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">)
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">其中部分错误级别系统定义如下:
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> LM_SHUTDOWN = 01,cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">系统死机级别
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> LM_TRACE = 02,cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">跟踪级别
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> LM_DEBUG = 04,DEBUGcii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">级别
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> LM_INFO = 010,cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">常规信息级别
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> LM_NOTICE = 020,cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">注意级别
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> LM_WARNING = 040,cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">警告级别
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> LM_STARTUP = 0100,cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">启动级别
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> LM_ERROR = 0200,cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">错误级别
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> LM_CRITICAL = 0400,cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">危急级别
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> LM_ALERT = 01000,cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">可修复的警告级别
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> LM_EMERGENCY = 02000,cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">全局警告级别
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">部分格式串使用如下:
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">跟c cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">中printfcii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">使用类似
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> %n-cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">表当前程序名称
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> %t-cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">表当前线程号
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> %p-cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">表指针
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> %s-cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">字符串
class="MsoNormal" style="margin: 0cm 0cm 0pt;">ACEcii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">通过全局单体实例 ACE_LOG_MSG cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">管理和控制输出c;我们可以利用这个实例把输出重定向
class="MsoNormal" style="margin: 0cm 0cm 0pt;">
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">到文件c;也可以重定向到标志输出
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">其中还可以控制什么级别的消息可被输出c;简单使用如下:
class="MsoNormal" style="margin: 0cm 0cm 0pt;">
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_LOG_MSG->set_flags (ACE_Log_Msg::STDERR);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">设置输出到标准错误输出
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">关闭输出到标志错误输出
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ofstream myostream (filename, class="tags" href="/tags/IOS.html" title=ios>ios::out | class="tags" href="/tags/IOS.html" title=ios>ios::trunc);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_LOG_MSG->msg_ostream (&myostream);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">设置输出到文件
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> u_long priority_mask =ACE_LOG_MSG->priority_mask (ACE_Log_Msg::PROCESS);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_SET_BITS (priority_mask,LM_DEBUG |LM_INFO);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">设置只记录LM_DEBUG cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">或者LM_INFOcii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">级别的消息
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_CLR_BITS (priority_mask,LM_DEBUG | LM_INFO);cerun: yes;">
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">清除设置条件
class="MsoNormal" style="margin: 0cm 0cm 0pt;">ACE_LOG_MSGcii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">还有一个非常有意思的功能c;能以16cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">进制方式输出内存中的块 ,cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">简单使用如下:
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_LOG_MSG->log_hexdump (LM_DEBUG,
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> (char *) array,
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> sizeof array);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">下面附上一个使用例子c;例子来源于ACEcii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">包中的例子程序
class="MsoNormal" style="margin: 0cm 0cm 0pt;">#include "ace/OS_main.h"
class="MsoNormal" style="margin: 0cm 0cm 0pt;">#include "ace/streams.h"
class="MsoNormal" style="margin: 0cm 0cm 0pt;">#include "ace/Log_Msg.h"
class="MsoNormal" style="margin: 0cm 0cm 0pt;">int
class="MsoNormal" style="margin: 0cm 0cm 0pt;">ACE_TMAIN (int, ACE_TCHAR *[])
class="MsoNormal" style="margin: 0cm 0cm 0pt;">{
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> // cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">这个消息将输出到STDERR
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_DEBUG ((LM_DEBUG,
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> cerun: yes;"> "first message/n"));
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_LOG_MSG->clr_flags (ACE_Log_Msg::STDERR);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> // cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">这个消息将不被输出c;因为标志位清除了
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_DEBUG ((LM_DEBUG,
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> "second message/n"));
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_LOG_MSG->set_flags (ACE_Log_Msg::OSTREAM);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> //cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">这个消息将不被输出c;因为流的实体尚未定义
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_DEBUG ((LM_DEBUG,
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> "third message/n"));
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> //cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">建立一个流实体c;指向d:/output.logcii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">文件
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> const char *filename = "d://output.log";
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ofstream myostream (filename, class="tags" href="/tags/IOS.html" title=ios>ios::out | class="tags" href="/tags/IOS.html" title=ios>ios::trunc);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> if (myostream.bad ())
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> return 1;
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> // cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">设置输出到流
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_LOG_MSG->msg_ostream (&myostream);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> //cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">这个消息将输出到文件中
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_DEBUG ((LM_DEBUG,
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> "fourth message/n"));
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_LOG_MSG->set_flags (ACE_Log_Msg::STDERR);
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> // cii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">这个消息将同时输出到文件和STDERR
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> ACE_DEBUG ((LM_DEBUG,
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> "fifth message/n"));
class="MsoNormal" style="margin: 0cm 0cm 0pt;">cerun: yes;"> return 0;
class="MsoNormal" style="margin: 0cm 0cm 0pt;">}
class="MsoNormal" style="margin: 0cm 0cm 0pt;">
class="MsoNormal" style="margin: 0cm 0cm 0pt;">
class="MsoNormal" style="margin: 0cm 0cm 0pt;">