C#日志扩展包之Microsoft Enterprise Library - Logging Application Block总述

Microsoft Enterprise Library - Logging Application Block是应用于Microsoft Visual Studio 上的进行日志事件编程操作的扩展包,要使用NuGet进行下载安装及管理。
1、下载安装
首先,在Visual Studio 工具菜单栏中选择扩展管理器,在弹出界面联网搜索安装NuGet;
其次,打开要安装扩展包的项目,在项目菜单栏中使用管理NuGet程序包,在弹出界面联网搜索安装Enterprise Library - Logging Application Block,如果要将日志保存至数据库,还应选择安装用于数据库操作的Enterprise Library - Logging Application Block;两者都会安装相应的依赖包;都依赖Enterprise Library - Common Infrastructure包,Unity包等,后者依赖Enterprise Library - Data Acess Application Block(数据库相关的应用块);
然后,就可以在项目中添加相应的命名空间,为程序添加日志了。
注意:下载安装的扩展包会安装在项目目录下的packages文件夹中;该扩展包只能在该项目中使用;若要在其他项目中使用,需要使用NuGet进行管理。
2、日志应用模块中5个主要的对象类型
(1). Log Writer:是创建日志条目(entries)的主要切入点(entry point),使用其Write(多个重载)方法可将日志条目写入指定的日志存储点(配置时指明);
(2). Log Filter:可以过滤具有某些特性的日志。每一条日志可指定优先级、一个或多个类别(默认为General类别),LogFilter将使用这些优先级和类别过滤日志。这些类别、优先级等在配置文件中定义;
(3). Trace Source:跟踪源实际存放未被LogFilter过滤掉的日志,可指定日志存储点,可以理解他们为将被写入到目标存储点的日志的源;两个基本的TraceSource是: Category Sources:以配置文件中定义的类别为源; Special Sources(内置三个):(1)接收所有日志(All Events),(2)日志应用模块产生的错误日志(Logging Errors & Warnings),(3)所有与配置类别不匹配的日志(Uprocessed Categories);
(4). Trace Listeners:指定日志存储点(如Windows事件日志,磁盘文件,email消息等),Trace Listener 监视到达Trace Source的日志条目,然后按指定格式格式化每个条目,并送至Trace Source配置好的存储点。配置时可给每个Trace Source指定一个或多个Trace Listener,这样可以将一条日志同时送到多个存储点;
(5)Log Formatter:每个Trace Listener都可以使用一个Log Formatter,以将日志格式化,Log Formatter包括一个文本格式化器,可用于分送日志条目至磁盘文件、email消息、Windows事件日志;一个二进制格式化器,用于序列化日志数据以适合传送至如Windows Message Queuing(MSMQ)的目的;一个文本格式化器(可配置的)以实现变更文本消息模式和内容的目的,包括在日志的特性值中使用占位符等。
3、日志应用模块运行流程
C#日志扩展包之Microsoft Enterprise Library - Logging Application Block总述_第1张图片
流程说明:

(1)程序将需要记录的日志信息提交给日志模块,该过程可以通过LogWriter类或LogEntry类实现,其中LogWriter会自动创建一个LogEntry,而LogEntry需要通过其属性值将日志信息填充其中(比如类别、优先级、事件ID等)。LogEntry可定义一组与配置文件中定义的类别相同的类别,以供Trace Listener各Trace Source使用。
(2)LogWriter传送的日志首先经过Log Filter,Log Filter将根据该条日志的优先级、类别或何时Logging模块不可用等对日志进行过滤。
(3)日志通过Log Filter后,LogWriter将其送至合适的Trace Source。
(4)Trace Source指定的Trace Listener(s),监视到一条日志送至Trace Source,将按照其配置处理该条日志;
(5)Trace Listener将日志根据Log Formatter配置的格式格式化该条日志,然后写入Trace Listener指定的存储点(如磁盘文件,Windows事件日志等)。
4、示例
以下示例使用LogEntry类记录日志:

public void ExampleScenario(LogWriter myLogWriter)
{
    LogEntry logEntry = new LogEntry();
    logEntry.EventId = 9001;
    logEntry.Priority = 2;
    logEntry.Message = "Information Message";
    logEntry.Categories.Add("Trace");
    logEntry.Categories.Add("UI Event");

    myLogWriter.Write(logEntry);
}

直接使用LogWriter记录日志:

LogWriter myLogWriter = new LogWriter();
...
myLogWriter.Writer("Information Message","Trace",2,9001);

你可能感兴趣的:(C#,日志,log)