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

推荐订阅源

GbyAI
GbyAI
The GitHub Blog
The GitHub Blog
小众软件
小众软件
美团技术团队
博客园 - 司徒正美
G
Google Developers Blog
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
大猫的无限游戏
大猫的无限游戏
罗磊的独立博客
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
D
Docker
J
Java Code Geeks
Last Week in AI
Last Week in AI
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
V
V2EX
C
Check Point Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MyScale Blog
MyScale 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年光做不写的毛病,如果觉得可以,请给与我继续总结下去的动力 :),祝园子的兄弟们新年快乐!