幸福是一种心情、一种体会

认真学习,虚心向高手们请教

导航

Enterprise LibraryV1.0-日志应用程序块使用说明

 

一、             日志应用程序块

1概述

一般来说,日志模块是一个项目必不可少的部分。最常用的场景就是将对业务数据的操作记录下来,用于以后的安全审计。比如进行了何种操作,修改的数据是什么等等。其他的应用有:

------ 跟踪程序的运行,将运行中的一些信息记录下来,这对于程序开发时期和试用时期非常重要,我们可以根据这些信息对程序加以改进。

------将日志信息写到不同的地方,比如写系统日志中、写到数据库中,甚至发送email等。

------可定制的日志输出格式。

------将一条日志同时发往不同的地方。

------ 对于日志我们要设置其优先级,以决定是否记录,记录的位置、格式等等。

当然还有其他一些对日志的要求。在这里关键的是当我们对日志的处理策略发生该变时,我们往往要修改原代码,这不但要重新编译程序,而且会带来很大的工作量。日志应用程序块的出现改变了这种情况,我们可以在运行时改变配置文件,从而改变记录日志的种类、优先级、目的地等等。

在此我们以将日志写到数据库为例,简要介绍其用法

2配置步骤

⑴添加日志应用程序块

添加后,我们可以看到日志和监控应用程序块有两个配置节,一个为Client Settings,一个为Distributor Settings。实际在物理上,系统用两个配置文件来分别保存着两个设置(loggingconfiguration.configloggingdistributorconfiguration.config)。

Client Settings用于设置发布策略,这里有两种,即In ProcessMSMQ。进程内发布是一种同步发布方式,我们比较常用,MSMQ是异步发布方式,用于将日志发布到MSMQ对列,由MSMQ依次处理。Distributor Settings用于设置各种类别的日志的发布目的地和格式,日志可以按不同的分类方式进行分类,这个我们自己掌握,比如可以将日志分为操作的安全审计日志、登录日志、跟踪日志等等,每种日志又具有持久化格式和发布目的地(也叫接收器),在这里我们可以设置多种发布格式和接收器,在设置每种类别的发布格式和接收器时,可以从中选择。除了默认的接收器Event Log SinkFlat File Sink外,我们这里还设置了一个Database Sink

⑵添加日志Sink

也就是添加接收器类型,我们添加一个Database Sink,设置好其数据库实例名称和存储日志的SP名。

⑶添加日志类别

根据我们自己应用程序的要求添加类别,如安全审计日志、登录日志、跟踪日志等等,对于每个类别取一个比较有意义的名字。

⑷添加发布目的地

对于添加的每个日志类别,添加发布目的地,一个日志类别可以添加多个发布目的地,设置每个发布目的地的日志格式和接收器。

 

⑸设置完毕,保存退出。

3写代码

记录日志的代码如下:

Logger.Write("logMessage", "LogCatagory", 1);

//或者

LogEntry logEntry = new LogEntry();

     logEntry.Category = " LogCatagory ";

     logEntry.Priority = 1;

     logEntry.Severity = Severity.Error;

     logEntry.Message = logMessage;

     Logger.Write(logEntry);

日志记录的内容非常详细,除了有日志消息外,还有很多附加信息,如日志的类别、优先级、机器名称、应用程序域、时间贴等等。我们可以动态的改变日志的优先级和发布目的地,而不用重新编译、部署程序。

posted on 2005-08-05 12:33  生活、工作  阅读(2883)  评论(6编辑  收藏  举报