惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
Microsoft Security Blog
Microsoft Security Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
博客园_首页
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
博客园 - 司徒正美
有赞技术团队
有赞技术团队
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog

博客园 - Charleston

配置Windows 2008 R2 防火墙允许远程访问SQL Server 2008 R2 heroku空间部署步骤 网站部署后Parser Error Message: Could not load type 的解决方案 C#中准确跟踪错误异常所在的文件位置方法 *(转)超时时间已到。超时时间已到 但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用 并且达到了最大池大小。 情感分析资源 (转) 布朗语料库中条件概率分布函数ConditionalFreqDist使用 一些常用的NLTK频率分布类中定义的函数 利用Aspose.Cells完成easyUI中DataGrid数据的Excel导出功能 修改tt模板让ADO.NET C# POCO Entity Generator With WCF Support 生成的实体类继承自定义基类 DbHelperSQL和Dapper数据访问的性能对比 Guide to Data Mining 读书笔记 相似度距离算法的取舍 情感分析面临的挑战 Ulipad中设置自定义模块(module)路径的方法(图) GAE的for application does not match expression '^(?:[a-z\d\-]{1,100}\~)?(?:(?!\-)[a-z\d 错误 - Charleston 利用HttpHandler和Jquery进行数据库增改删查操作 机器学习算法相关的开源架构介绍 JSON C# Class Generator ---由json字符串生成C#实体类的工具 Win7下附加sql2005数据库失败 错误代码5120的解决方法
利用ELMAH和Sqlite快速完成错误日志的捕获和存储
Charleston · 2013-01-01 · via 博客园 - Charleston

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