Chinaunix首页 | 论坛 | 博客
  • 博客访问: 323202
  • 博文数量: 100
  • 博客积分: 2620
  • 博客等级: 少校
  • 技术积分: 920
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-16 02:50
文章分类

全部博文(100)

文章存档

2011年(5)

2010年(12)

2009年(83)

分类:

2009-12-17 00:01:38

mangosd 之 Log
 
     在stdlog.h中,连写个日志这样简单的事情也被抽象了一下,stdlog提供一个抽象类,定义了一个
error纯虚函数,如果你想让日志写到stdout就继承这个类,并实现自己的error,如果要写到也文件,同样
实现一个写文件的error函数就可以了。这样确实也可以带来方便,减少修改,比如类A用到了log功能,它
只需要持有积累stdlog的句柄就可以了,不用关心具体调用了那一个子类,如果你想log到文件,就传一个
StdFileLog的句柄给A就大功告成了,甚至可以动态插拔。
    而log.h中,定义了很多写日志的函数,因为mangosd中有多种日志文件(如ralog,gmlog,dblog
等),每种文件都有自己的log函数,而不同的日志等级也有不同的函数;感觉是不是分得太细了?导致很
多函数里面的代码都是很相似的,甚至只是一个日志登记和日志颜色的区别。其实可以写一个函数,传入等
级,日志文件类型等,在这个文件里面做处理就好了,如果需要,也可以为具体的日志定义其函数,这样暴
露给用户的就只有一个wirtelog接口,而不会让用户在大量接口下面茫然失措,不知道该调用哪个好。但是
这样的话writelog肯定会比较大,而且功能也不一定单一,而维护的工作就都集中在对其的修改之上。相比
而言,mangos的方法在维护起来还是比较清晰的,要添要改还是很容易。说到底还是一个取舍和折中的问题
阅读(921) | 评论(0) | 转发(0) |
0

上一篇:公而告之

下一篇:mangosd 之 DB Access

给主人留下些什么吧!~~