Jason Heck's blog

爱好折腾电脑、幻想、探索未知事物,对挨踢业和网络安全方面十分感兴趣,横向发展,广而不精。作息时间不定,上线时间诡异,QQ常年隐身,偶尔上线,开源产品的支持者,珍爱生命,远离微软,病毒爱好者和Web前端爱好者。虚拟主机评测http://www.idcpw.com

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

最近研究了一下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,日志将写入多个持久化设备中

posted on 2008-10-23 23:30  Heck  阅读(393)  评论(0编辑  收藏  举报
关于我们 | 石器时代| 主机评测 | IDC评测 | IDC投诉 | IDC大全 | 广告服务 | 友情链接 | Heck's Blog
Copyright © 2010 - 2012 石器时代旗下网站 All Rights Reserved 石器时代工作室
联系电话:0755-84256821 服务QQ:想我就吻我想我就吻我 邮箱:Heck@hecks.tk
石器时代技术团队专注开源产品研究,您人生道路上真诚的朋友!感谢www.Hecks.tk 提供相关链接。