ELMAH 是 Error Logging Modules and Handlers for ASP.NET 的缩写,它是一款开源的Web应用程序错误信息记载工具,能够自动捕获用户在访问网站中所发生的各种错误,并可通过简单配置来邮件通知用户及时解决他们所遇到的错误,拉近网站和用户之间的距离,让用户有种被重视的感觉。
一、通过NuGet(维护.NET FrameWork常用类库的VS2010扩展)在线安装ELMAH,安装步骤
二、安装成功后,会自动在Web.config中添加如下关于ELMAH的配置内容(有删节):
<configuration> <configSections> <sectionGroup name="elmah"> <section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah"/> </sectionGroup> </configSections> <elmah> <errorLog type="Elmah.SQLiteErrorLog, Elmah" connectionStringName="ELMAH.SQLite"/> </elmah> <connectionStrings> <add name="ELMAH.SQLite" connectionString="Data Source=|DataDirectory|errors.s3db"/> </connectionStrings> <system.web> <httpModules> <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/> </httpModules> <httpHandlers> <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/> </httpHandlers> </system.web> </configuration>
其中在errorLog配置节,type有四个值表示错误日志的四种存储方式,MemoryErrorLog表示内存存储只适合调试环境不适用生产环境中,因为ASP.NET Development Server停止,IIS重启等会导致错误信息丢失;XmlFileErrorLog表示Xml文件方式存储错误信息,每个xml文件只存储一条错误信息,如果错误过多,每个xml文件都需要打开查看,麻烦;SqlErrorLog表示将错误信息存储在Sqlserver关系数据库中,但是需要事先创建用来存储错误信息的数据表,以及读取和存储错误信息的存储过程,也麻烦;所以个人推荐SQLiteErrorLog这种方式,用Sqlite这种嵌入式数据库存储速度快,更重要无需任何配置,除了上面的Web.config文件中添加的两行红色文字。其中connectionString="Data Source=|DataDirectory|errors.s3db" 表示数据库字符串链接信息,在App_Data文件夹中如果没有errors.s3db数据库文件,系统将自动创建一个。
三、通过NuGet安装SQLite ADONET驱动 (同时支持32bit和64bit的操作系统)
四、运行系统,在地址栏输入:http://localhost:360/Elmah.axd, 即可看到具体的错误信息
点击Details链接会看到错误信息出现在具体的代码位置。
关于ELMAH安全访问和更详细的配置,尽量下篇记录或者查看下面这些大作。
ElMAH(ASP.NET错误日志记录与通知)系列文章-基础应用篇 http://www.cnblogs.com/lerit/archive/2011/04/19/2020565.html
【工具推荐】ELMAH——可插拔错误日志工具 http://www.cnblogs.com/liping13599168/archive/2011/02/23/1962625.html
使用 Elmah一些要注意的问题 http://www.cnblogs.com/apsnet/archive/2012/04/28/2474730.html
btw:新年开篇,一下子过去了一个小时,力求克服2012年光做不写的毛病,如果觉得可以,请给与我继续总结下去的动力 :),祝园子的兄弟们新年快乐!