利用 Enterprise Library 改善你的应用系统4——logging Block Application
日志功能的需求:
你需要记录业务数据和运行数据到不同的地方,这些地方应该是可以在外部配置的
你需要用跟踪机制进行产品调试
你需要提供安全审计
你需要能够使不同的消息发到不同的地方,并可以有不同的格式
你需要把一条消息发到很多不同的目的地
场景
在代码记录事件
在日志消息中添加额外的上下文信息
跟踪活动并记录上下文信息
将不同类型的事件定向到不同的sink
基于类别或优先级过滤事件
将日志功能配置成同步或异步
定制日志消息的格式
日志项
Logging block 创建一个日志项来承载记录信息
每个日志项具有以下属性
Message (必需)
Category (配置提供缺省值)
Priority (缺省值为-1)
Event ID (缺省值为1)
Severity (缺省值为 Severity.Unspecified)
Title (缺省值为“”)
你创建一个日志项对象,然后把它传给Logger.Write() 方法
创建日志项
LogEntry log = new LogEntry();
log.Message = "My message";
log.EventId = 1;
log.Category = "UI Events";
log.Priority = 2;
log.Severity = Severity.Information;
log.Title = "My title";
Logger.Write(log);
在日志消息中添加额外的上下文信息
DebugInformationProvider
跟踪活动并记录上下文信息
活动跟踪由 Tracer 类提供(自动记录活动时间)
// Begin tracing activity
using (new Tracer("UI Events"))
{
DoDataAccess();
}
private void DoDataAccess()
{
// Trace nested activity
using (new Tracer("Data Access Events“, “Data Access”))
{
Logger.Write(“Troubleshooting message");
}
}