构建企业应用系统框架-1. 日志模块
<div id="cnblogs_post_body">1.1. 概述日志模块是企业应用系统很重要的组成部分,它可以帮助系统管理员记录系统运行过程中的发生错误、帮助系统运营人员记录系统使用人员的日常操作记录、帮助开发人员调试程序时输出程序内部状态信息。日志模块对于提高企业应用系统的健壮性、可靠性、用户友好性等起到了非常重要的作用。
一般一个日志模块具备以下功能特性:
[*]日志级别,根据应用系统对日志的需求,我们把日志分为调试、信息、警告、错误这四种级别。日志级别即可以对日志进行分类,也可以根据日志级别的高低对日志的登记进行限制。
[*]日志输出目标,根据需要可以把日志记录到数据库(各种数据库)、文件、控制台等设备。
[*]日志格式,根据需要可以自定义各种各样日志格式。
我们的日志模块需要实现以下目标:
[*]确保使用该应用程序块的代码清晰而直观。
[*]确保应用程序约定优于配置
[*]确保应用程序块是可扩展的
[*]确保性能影响最小或可忽略不计(与人工编写的用于实现同一功能的日志代码相比)
1.2. 设计
目前市面上有许多优秀的日志系统,如log4net,nlog,logging application block等,这些系统都各自的定义各自接口、配置相对比较繁琐及没有读取分析日志的功能,针对上面提到的这些问题,本模块基于市面上的成熟的日志系统,设计一个具有一个通用日志接口、基于约定优于配置原则消除繁琐的日志配置及增加日志读取分析功能。
我们采用的是一个通用接口,它的实现就不能和某个具体的日志系统绑死。我们需要一种能在代码外实现这种绑定的设计,我们采用了工厂方法模式来选择具体的日志实现。
下图引入工厂方法模式描述:
http://images.cnblogs.com/cnblogs_com/ultranuke/201211/20121108222434469.gif
1.3. 实现
首先我们需要先定义日志的接口,代码如下:
<div class="cnblogs_code"> /// <summary> /// ILog提供应用程序日志操作的接口 /// </summary> public interface ILog { /// <summary> /// 写入日志消息 /// </summary> /// <param name=&quot;message&quot;>日志消息</param> /// <param name=&quot;level&quot;>日志级别</param> void Write(string message, LogLevel level); }
页:
[1]