第七周的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."

image

你可能已经使用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 Database Column Structure 

当你的应用程序启动,ELMAH会把Elmah.sdf放到你的~\App_Data文件夹。数据库的结构类似于右边的图。使用Visual Studio 2010 SP1添加的SQL Server Compact工具,你可以在VS中正确地打开SDF文件并查询,如果你喜欢的话。

如果你喜欢为错误日志弄一个不同的后台,我们应该很快就会看到有很多支持ELMAH存储解决方案的NuGet“快速启动”软件包。你甚至可以以RSS或JSON得到你的错误!

* Microsoft SQL Server

* Oracle (OracleErrorLog)

* SQLite (version 3) database file

* Microsoft Access (AccessErrorLog)

* Loose XML files

* RAM (in-memory)

* SQL Server Compact Edition

* MySQL

* PostgreSQL

此外,注意Elmah已经更新到1.2版本,有一些新功能和修改。ELMAH可以在.NET 1.1 和 .NET 2下运行,所以没有理由不将它签出!

Screenshot of an ELMAH log

希望您喜欢,感谢ELMAH团队在过去几个月里能忍受我的唠叨,错误报告和评论!这只是因为我太爱这个项目了。

Comments (0)

Skip to main content