日志模块
企业库的日志模块简单的实现了日志功能的常用功能。开发者可以利用模块在下面的位置记录信息:
- 事件日志
- 电子邮件
- 数据库
- 消息队列
- 文本文件
- WMI的事件查看器
- 自定义的位置
模块为记录在任何位置的日志信息都提供了一系列接口。在你的应用中不需要指明信息的目的地。配置信息决定了是否记录日志,以及日志记录的位置。这就意味着开发者不需要修改应用代码就可以变更日志的行为。
本节包含下面的内容:
- 简介
- 使用模块进行开发
- 典型解决方案
- 模块的设计目的
- 扩展和修改模块
- 部署和实施模块
- 示例代码
1、 简介
通过下面的主题,你可以发现模块是否适合于你。
常用方案
开发者在开发过程中经常需要日志功能。典型的,响应应用事件的格式和日志信息。例如,开发者经常会写一些代码来记录非预期的日志,例如异常、或者是连接数据库失败。也包括一些跟踪应用流程的过程,参数的传递等等。
应用需要记录本地和网络的信息。某些情况,你还需要将多个位置的信息整理到一个目的地。
日志模块通过封装的一些列方法,简化了上面这些需求的实现。包括:
- 用代码增加和引发事件
- 增加带有其他环境信息的日志消息
- 跟踪应用的行为,增加上下文信息
- 构造日志信息之前,检查filter的状态
- 示例代码
代码
private void RecordSelectedCategories()
{
categories.Add("Trace");
}
protected void Button1_Click(object sender, EventArgs e)
{
RecordSelectedCategories();
LogEntry log = new LogEntry();
log.EventId = 100;
log.Priority = 3;
log.Message = "information message";
log.Categories = Categories;
Logger.Write(log );
}
[NonSerialized]
private ICollection<string> categories = new List<string>(0);
[IgnoreMember]
public ICollection<string> Categories
{
get { return categories; }
set { this.categories = value; }
}
什么时候选用日志模块
如果你的应用需要将日志信息记录到windows事件中,邮件中,数据库中,消息队列中,WMI中,或者是一个文件中,你可以考虑使用模块。在某些情况,日志模块非常有用,例如,你需要在优先级和目录上过滤日志,你需要格式化日志信息,你需要在不修改代码的情况下变更日志的记录位置。日志模块设计的很灵活,可以自定义格式和trace listener,满足你的特定需要。
日志的信息默认是明文记录的,如果又需要的话,可以通过访问控制列表来控制访问日志文件的用户,也可以自定义格式实现日志信息的加密。
2、在应用中使用日志模块
配置日志模块,如下图所示,右键菜单中选择【Logging Application Block】.
未完待续。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。