利用ACE日志策略进行日志运行时配置管理

本文详细介绍了ACE日志策略的使用方法及优势,包括如何通过配置文件管理日志输出、控制日志级别和日志文件的尺寸与数量。此外,还提供了一个简单的示例代码,展示了如何在程序中应用ACE日志策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要使用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配置文件的方式。但是,我们是为了应用目的,并非为XML而XML,够用即可。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值