第七周的NuGet 软件包——有SQL Server Compact的ELMAH(错误日志模块和处理程序)
[原文发表地址] NuGet Package of the Week #7 - ELMAH (Error Logging Modules and Handlers) with SQL Server Compact
[原文发表时间] 2011-05-23 15:03
您实施了NuGet行动计划吗?行动起来吧,它只需5分钟: NuGet行动计划——升级到1.3版本,安装自动更新,获取NuGet 软件包浏览器。NuGet 1.3已经发布了,请确认你设置了自动更新。
故事背景:我正在思考既然NuGet.Net软件包管理网站开始逐渐充实,那么我应该开始在那寻找宝石了(没有双关含义)。您知道,就是那种大家可能没有发现的真正有用的东西。我将主要寻找开放源代码项目——我认为它们很有用。我会查看它们如何生成NuGet软件包,看看它们设计开箱体验(out of the box experience)时有没有什么有趣的地方(以及任何它们可以改进的举措),当然也会关注软件包本身所做的事。
这周的本周程序包是"ELMAH 1.2 with SQL Compact."
你可能已经使用ELMAH。现在不要停下不读了,因为你会需要这些信息的。
到现在,我已经写博客和推进ELMAH(错误日志模块和处理程序)好多年了。这是我添加到任何不管多重要的ASP.NET项目的第一个东西。它是ASP.NET开源伟大的妙处之一。
我已经在一些谈话和视频中演示过“install-package elmah”,作为我的指导演示它演示了NuGet和结构良好的OSS软件包如何让你迅速上手。最近,ELMAH团队已经开始重新调整一些软件包,我想展示一下他们的工作,以便你不仅能从中学习,而且在你自己的软件包里也能实现类似的结构。
首先,花几分钟看看ELMAH是怎样工作的,怎样加到你的ASP.NET项目。现在,让我们看看在NuGet.org上的(目前有三个,很快就会有更多)ELMAH软件包。
目前有:
ELMAH Core Library (no config)- “ 没有任何配置的ELMAH的核心库(错误日志模块和处理程序)“,
o 这个只包含程序库。如果你已经有了自定义ELMAH配置或者你想新建一个,你可以依赖并使用这个“核心”软件包。
ELMAH-“为了更快上手,ELMAH用初始配置。ELMAH (错误日志模块和处理程序) 是一种应用广泛的错误日志工具,完全可插拔。它可以被动态添加到正在运行的ASP.NET Web应用程序,甚至机器上所有的ASP.NET Web应用程序。而不需要重新编译或重新部署。”
o 这个包含你需要的drop-in/just-works 配置的基础知识。这不是“核心”程序库,而是依赖于核心的程序库,是一个“入门”的库。
MS SQL Server Compact 上的ELMAH – “具有能在Microsoft SQL Server Compact数据库上快速入门的配置并作为错误日志的ELMAH,”
o 这个软件包依赖Elmah程序库,Elmah.CoreLibrary软件包以及SqlServerCompact,可以添加配置来同时使用它们。
o 依赖链:
o elmah.sqlservercompact -> elmah -> elmah.corelibrary
下面是elmah.sqlservercompact添加到你基础ELMAH web.config中的web.config.transform:
1: <configuration>
2:
3: <elmah>
4:
5: <errorLogtype="Elmah.SqlServerCompactErrorLog, Elmah"connectionStringName="elmah-sqlservercompact"/>
6:
7: </elmah>
8:
9: <connectionStrings>
10:
11: <addname="elmah-sqlservercompact"connectionString="Data Source=|DataDirectory|\Elmah.sdf"/>
12:
13: </connectionStrings>
14:
15: </configuration>
试一下,很简单,安装封装软件包elmah.sqlservercompact。这个基本软件包的依赖结构让使用Elmah的人可以用不同配置创建“快速启动”,每个配置都依赖于elmah,而elmah又依赖于elmah.corelibrary。
ELMAH支持很多存储错误格式,但我认为对小型和中型应用程序,SQL Server Compact是个很好的选择。
所有的东西都在一处,并且可查询。
没有乱七八糟的文本文件和XML文件
数据库可以不因应用程序而遭破坏
重新启动/回收
如果你正在使用WebFarm, 你可能想用中央SQL Server实例,但我知道一些人使用WebFarms , 却仍喜欢基于每个WebServer。
当你的应用程序启动,ELMAH会把Elmah.sdf放到你的~\App_Data文件夹。数据库的结构类似于右边的图。使用Visual Studio 2010 SP1添加的SQL Server Compact工具,你可以在VS中正确地打开SDF文件并查询,如果你喜欢的话。
如果你喜欢为错误日志弄一个不同的后台,我们应该很快就会看到有很多支持ELMAH存储解决方案的NuGet“快速启动”软件包。你甚至可以以RSS或JSON得到你的错误!
SQLite (version 3) database file
Microsoft Access (AccessErrorLog)
Loose XML files
RAM (in-memory)
此外,注意Elmah已经更新到1.2版本,有一些新功能和修改。ELMAH可以在.NET 1.1 和 .NET 2下运行,所以没有理由不将它签出!
希望您喜欢,感谢ELMAH团队在过去几个月里能忍受我的唠叨,错误报告和评论!这只是因为我太爱这个项目了。