ACE使用经验-利用ACE日志策略进行日志运行时配置管理

类别:编程语言 点击:0 评论:0 推荐:

ACE使用经验-利用ACE日志策略进行日志运行时配置管理

为什么要使用ACE日志策略?
 因为使用ACE日志策略可以使我们以配置的方式对日志输出进行管理
 更为重要的是,其利用配置参数可以控制日志输出中的各种问题,
 如:可以配置当应用的日志文件到达指定尺寸是,它能够换用新的日志文件
 也可也配置要保留的文件最大数目
 总之,用上ACE日志策略,很多麻烦的事情你都不用管了

怎么使用ACE日志策略?
 使用很简单,你只需建立一个配置文件,然后再你的代码总入口处写上几行就行了
 如建立下面配置文件svc.conf
  dynamic Logger Service_Object * ACE:_make_ACE_Logging_Strategy()
  "-s log.out -f STDERR|OSTREAM -p DEBUG|NOTICE"
  
 上面配置文件说明了日志同时输出到文件(LOG.OUT)和STDERR中,  且只输出日志级别为DEBUG或者NOTICE的信息
 下面列出一个很简单的示例文件main.cpp(例子来源于ACE自带的例子)
   #include "ace/Log_Msg.h"
   #include "ace/Service_Config.h" 
    int ACE_TMAIN (int argc, ACE_TCHAR *argv[])
   {
     if (ACE_Service_Config::open (argc,
                                   argv,
                                   ACE_DEFAULT_LOGGER_KEY,
                                   1,
                                   0,
                                   1) < 0)
       ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"),
                          ACE_TEXT ("Service Config open")),
                         1);
       ACE_TRACE (ACE_TEXT ("main"));
       ACE_DEBUG ((LM_NOTICE, ACE_TEXT ("%t%IHowdy Pardner\n")));
       ACE_DEBUG ((LM_INFO, ACE_TEXT ("%t%IGoodnight\n")));
   
       return 0;
   }
 编译并运行main.exe,则会发现日志信息同时出现在了文件和屏幕中
 
 如你想让main.exe 使用另一个配置文件,则使用下面调用即可:
  main.exe -f 你的配置文件名
 
ACE日志策略有那些有用的参数?
 上面的配置文件我们已经使用了-s -f -p参数,下面列出一些常用参数的简单说明
 -s 指定文件输出时的文件名
 -f 指定输出的方向,如OSTREAM ,STDERR,LOGGER等
 -p 指定输出或者禁止输出的级别,如INFO、~INFO
 -m 指定日志文件的最大尺寸
 -N 指定创建的日志文件的最大数目
 -w 让日志文件在启动和重新配置时被清除
 
ACE日志策略其他
 你是不是觉得这种配置文件的方式过时了呢?
 是的,过时了,所以ACE4.3版后就提供了XML方式的配置文件,并且提供了自动转换以前的配置文件到XML配置文件的方式
 
ACE_Service_Config是一个高级的话题,有很多有趣的特性,以后有时间再说了 :)

本文地址:http://com.8s8s.com/it/it22063.htm