ACE的日志的不如意

 

14         ACE的日志的不如意

ACE的日志部分是一个非常漂亮的实现,在多线程和多进程模型下都能较好的效率和安全使用。但是却又少量的不足,让人意犹未尽。

14.1           无法替换的时间戳格式

ACE日志对于时间戳的格式是固定的,采用的是格式,这个格式在西方人看起来估计还比较顺眼,在东方人眼中却不如人意。更好的方式当然是时间戳的函数可以重载。或者用函数对象(指针)作为参数传入。

虽然这部分代码可以重载解决这个问题,但是要大动干戈只修正这个问题感觉却又不值得的。

14.2           日志策略的初始化方式别扭

ACE提供了一个日志策略类ACE_Logging_Strategy辅助大家定义日志策略。但是他的初始化参数却是命令行参数,而不是变量参数。

int

ACE_Logging_Strategy::init (int argc, ACE_TCHAR *argv[])

你必须使用这样的命令行去初始化日志策略模块。

-m1024 -N10 -fSTDERR|OSTREAM -s../log/c4ad.log

试问有几个服务器的开发人员会将这些日志策略的初始化放到命令行参数上去。

14.3           没有按天(时间)分割日志文件的方式

ACE_Logging_Strategy的日志文件的分割策略采用的是按照文件大小分割文件,文件的序号采用滚动的,但这种日志分割方式无法根据文件时间了解日志内容,(由于文件序号要滚动,序号文件的最后修改时间都一样),你只能grep所有的日志寻找你要的内容。

而在我看来,最好日志分割方式肯定是按照日期进行分割日志文件。每天创建一个新的日志文件,可以方便分割日志。清理和管理的工作量大大降低。

14.4           日志槽的方式

ACE_Logging_Strategy采用的是日志槽的方式Enable或者Disable某些级别的日志。但是感觉多少有点不自然的,ACE自己的日志级别本身就是分级的。个人感觉应该是如果日志输出的日志级别大于定义的级别就能输出应该是一个更好的选择。

 

解决ACE_Logging_Strategy的问题最好的办法还是扩展这个类。实现自己的日志策略类。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值