三尺龙泉万卷书,皇天生我意何如

酒香也怕巷子深

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

前几篇文章谈了谈开发框架,从今天开始公开一些项目的具体内容。

今天先从最底层的日志项目开始。这个项目目前还很轻,因为暂时只用log4net来记录日志。不久将会扩展其他方法,考虑扩展性,我决定将他单独提出来作为一个项目,来进行维护。以便以后更新的时候更新轻量级dll就可以了。

更新有风险,升级须谨慎。

对设计模式有兴趣的初学者可以看看这个小项目,相信对理解单件,适配器,工厂会有帮助。

 

LogAdapter项目说明

 

一、项目功能

提供上层对多种日志记录工具的统一调用。适配器项目。

ILogAdapter允许被外部继承,但应优先扩展在本项目内。

目前只有log4net的适配器,以后可以扩展以数据库,消息队列,邮件等多种形式。

 

二、类库说明

1. ILogAdapter 接口,声明日志项目必须实现的方法。

2. ILogAdapterFactory 工厂,获取日志工具的适配器实例

a)         public static ILogAdapter GetLogInstance(LogType type) 返回适配器的实例

3. Log4NetAdapter Log4Net.Dll的适配器 继承自ILogAdapter

适用该日志需要在Web.Config中配置相应的节点。

单件

a)         void WirteLog(string logInfo, string logName) 记录日志 Info级

b)        void WirteLog(string logInfo, Exception ex, string logName) 记录日志 Fatal级

c)        void WirteLog(string logInfo, Exception ex, string logName, WirteType logType) 记录日志 自定义级别

4. 文件LogEnum.cs 枚举类,包含日志级别及工厂产生的适配器类型

 

 

项目用例:

ILogAdapter log = ILogAdapterFactory.GetLogInstance(LogType);

     log.WirteLog(loginfo,ex,logname,WirteType);

 

付代码如下。该项目需要引用log4net.dll。思路是工厂维护的单件适配器组。

由两种enum,一种是控制日志工具,一种是控制日志级别。

由于目前只用到了log4net,所以只有一个适配器。以后会考虑入库及email方式的日志。

btw,我不喜欢反射,反射消耗资源太严重,我宁愿封装细粒度的项目来更新dll。

作为底层项目,一定要控制好访问权限。访问修饰符都是很有必要斟酌的。

在以后的项目介绍中如果是微项目我将直接把代码贴上来,如果项目比较胖,我会放上rar。

 

 

Code
Code
Code
Code
Code

 

PS:今年过年真他M不爽。我记住了,空头支票。(牢骚)

PS2:我爱开源。(*^_^*)

posted on 2009-01-21 12:14  RacheHunter  阅读(509)  评论(0编辑  收藏  举报