Enterprise Library4.0一log篇

来源:互联网 发布:知行理工app闪退 编辑:程序博客网 时间:2024/05/16 12:58
最近研究了一下Enterprise Library4.0,在项目中做了点应用,这里和大家分享一下: Enterprise Library Logging应用程序块为用户提供了简单实现日志记录的功能,开发人员可以使用日志模块方便的将日志记录到windows事件日志、email,数据库,消息队列,文本等持久化设备中。我们这里列举一下将日志信息存储于数据库中的做法。首先我们要在Enterprise Library Configuration工具中配置日志模块

Category Sources节点中设置日志持久化到哪种设备中,比如Database节点中设置ReferencedTraceListener指向Trace Listeners节点中设置的Database Trace Listener,我们在这里设置他的数据库实例如下图。同时在这里还要配置写日志的存储过程名,这些存储过程和数据库是通过/EntLib4Src/Blocks/Logging/Src/DatabaseTraceListener/Scripts文件夹下LoggingDatabase.sql中的sql语句录入数据库中的,有兴趣的朋友可以研究一下。

下面的工作就容易了,首先我们要实例化一个LogEntry类用于存放日志体:

            LogEntry logEntry = new LogEntry();            logEntry.Message = ex.Message;            logEntry.Message +=Environment.NewLine + "StackTrace:" + ex.StackTrace;            logEntry.Message += Environment.NewLine + "TargetSite:" + ex.TargetSite;            logEntry.TimeStamp = DateTime.Now;            logEntry.Categories.Clear();            logEntry.Categories.Add("Database");

这里Categories中添加的"Database"就是Category Sources节点中的"Database"节点。最后使用Logger类中的静态方法Write将日志写入数据库中

Logger.Write(logEntry);

这里如果添加多个Categories,日志将写入多个持久化设备中