如何去实现一个通用、轻量级的日志库

来源:互联网 发布:软件项目开发总结报告 编辑:程序博客网 时间:2024/04/29 03:03

在开发过程中,我们总能遇到需要记录日志的这样一个问题。日志记录的是否充分,直接可以帮助用户或者开发人员去了解系统的运行情况。但大家也需要意识到,过多的日志记录,也能够间接的影响到整体应用的性能。

一个好的日志库,应该尽可能通用,而不需要在不同的应用中去重复发明轮子。一个应用于后台服务端的日志库,你可能没有办法同时把它应用于前端开发,或者你没办法两者同时兼并记录日志。

怎么样能够实现一个通用,并且轻量级不影响系统性能的日志库呢?带着这个问题,我们采用面向对象分析设计的理念来慢慢探索一下。

一个日志类(库)应该分为哪些部分呢?

第一:它存在一个日志记录源,也就是日志最终将保存到文件,还是数据库,还是流向输出窗口,基于WEB客户端呢?一个好的日志类(库)应该能保证它同时支持向多个日志记录源输出日志。

第二:记录日志,对于每一条需要记录的日志,也许你需要加上时间或者一些其他信息。这样,就涉及到一个日志信息格式化的问题

第三:为了保证日志类(库)尽可能的高效,你应该制定一些批量输出策略(当然也应该提供一种机制,让使用者能够随时输出)。因为每来一条日志你就把它记录到文件,数据库,输出窗口,这样不够高效,极其影响性能。我们应该批量记录它

第四:最后,我们需要的仅仅是一个上面东西的处理器,让它负责去完成所有的日志相关操作

 

有了上面的思路,相信大家都可以为根据它去实现一个不错的日志类(库)了

以上是本人对日志类(库)设计的一些看法,欢迎大家拍砖

如果你有兴趣,可以点击这里加我为好友

原创粉丝点击