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

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

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 生活、工作 阅读(2126) 评论(6)  编辑 收藏

评论

#1楼  2005-08-05 12:53 春鱼      

Severity 与 Priority 的区别是什么呢?
如果要设置仅输出 Severity 为 debug 以上的日志,是否可通过配置管理器进行控制?

另:其实Logging Application Block 不用翻成“日志应用程序块”   回复  引用  查看    

#2楼  2005-08-05 14:51 neuhawk      

我现在用log4net,不知道.net 2.0自带的会怎么样.   回复  引用  查看    

#3楼 [楼主] 2005-08-05 17:06 生活、工作      

Severity 是指log本身的属性,而Priority是因为设计上的因素提出的,使配置更灵活,使log具有伸缩性。

确实Logging Application Block 不应该翻译,不过更难理解的是Logging and Instrumentation Application Block被翻译成日志和仪表盘应用程序块。   回复  引用  查看    

#4楼  2005-08-05 20:04 jeky [未注册用户]

大哥,我想问你一下,上面的图片是怎么处理的?
是在PhotoShop中处理的,还是专门有工具?
我上次写日志就想处理一个类似这样的图片,但不知道该咋处理。。   回复  引用    

#5楼 [楼主] 2005-08-05 20:19 生活、工作      

SnagIt,截图工具处理的。   回复  引用  查看    

#6楼  2005-08-05 21:10 Explorer-XXN      

你的图片好烂啊!   回复  引用  查看    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交