利用ELMAH和Sqlite快速完成错误日志的捕获和存储

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年光做不写的毛病,如果觉得可以,请给与我继续总结下去的动力 :),祝园子的兄弟们新年快乐!

 

posted @ 2013-01-01 23:04  Charleston  阅读(1753)  评论(0编辑  收藏  举报