【工具推荐】ELMAH——可插拔错误日志工具(转)
出處:http://www.cnblogs.com/liping13599168/archive/2011/02/23/1962625.html
今天看到一篇文章(構(gòu)建ASP.NET網(wǎng)站十大必備工具(2)),里面介紹了一個ELMAH的錯誤日志工具,于是研究了一下。 ELMAH 是 Error Logging Modules and Handlers for ASP.NET 的縮寫。ELMAH可以讓你記錄下你的網(wǎng)站發(fā)生的任何一個錯誤,在將來,你可以重新檢查這些錯誤。你可以從ELMAH項目的官方網(wǎng)站免費下載ELMAH:http://code.google.com/p/elmah/。
ELMAH既支持ASP.NET Web Forms 又支持 ASP.NET MVC。你可以對ELMAH進行配置來存儲各種不同的錯誤(XML文件,事件日志,Access數(shù)據(jù)庫,SQL數(shù)據(jù)庫,Oracle數(shù)據(jù)庫,或者計算機 RAM。)你還可以讓ELMAH在錯誤發(fā)生的時候,把錯誤信息email給你。
在默認情況下,在一個已經(jīng)安裝ELMAH的網(wǎng)站中,你可以通過請求的elmah.axd頁面的方式來訪問ELMAH。
下載下來后,看下它的目錄:
其中demo.cmd為批處理文件,用來生成samples里面Demo的相關(guān)文件,如bin,App_Data等等。
它會啟動tools目錄中的Cassini.exe,設(shè)置好應用程序虛擬目錄以及端口號(從demo.cmd里面做設(shè)置)
?
啟動Cassini后,會自動打開一個網(wǎng)頁,點擊里面的鏈接:To see the list of errors logged, vist?elmah.axd.
再查看下生成的Web.config:
<?xml?version="1.0"?><configuration>
????<configSections>
????????<sectionGroup?name="elmah">
????????????<section?name="security"requirePermission="false"type="Elmah.SecuritySectionHandler,?Elmah"/>
????????????<section?name="errorLog"requirePermission="false"type="Elmah.ErrorLogSectionHandler,?Elmah"/>
????????????<section?name="errorMail"requirePermission="false"type="Elmah.ErrorMailSectionHandler,?Elmah"/>
????????</sectionGroup>
????</configSections>
????<elmah>
????????<errorLog?type="Elmah.SQLiteErrorLog,?Elmah"connectionStringName="ELMAH.SQLite"/>
????????<errorMail?from="noreply@example.com"to="elmah@example.com"priority="high"/>
????</elmah>
????<connectionStrings>
????????<add?name="ELMAH.SQLite"connectionString="Data?Source=|DataDirectory|errors.s3db"/>
????</connectionStrings>
????<system.net>
????????<mailSettings>
????????????<smtp?deliveryMethod="SpecifiedPickupDirectory">
????????????????<specifiedPickupDirectory?pickupDirectoryLocation="F:\ELMAH-1.1-bin\samples\Demo\Mails"/>
????????????</smtp>
????????</mailSettings>
????</system.net>
????<system.web>
????????<compilation?debug="true"defaultLanguage="C#"/>
????????<httpModules>
????????????<add?name="ErrorMail"type="Elmah.ErrorMailModule,?Elmah"/>
????????????<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>
????????<trace?enabled="true"requestLimit="10"pageOutput="false"traceMode="SortByTime"localOnly="true"/>
????????<globalization?requestEncoding="utf-8"responseEncoding="utf-8"culture="en-US"/>
????????<trust?level="Full"/>
????</system.web>
</configuration>
其中elmah.axd對應ErrorLogPageFactory去做Handler處理。
存儲數(shù)據(jù)使用的是Sqlite的。
通過這種方式,您就可以在自己的網(wǎng)站上部署這樣的一個錯誤日志工具了。
?
如果您想自動創(chuàng)建一個這樣Elmah的項目,可以利用ASP.NET軟件包管理器 NuGet(http://nuget.codeplex.com/)來安裝ELMAH。當然在安裝NuGet之前,首先需要在你的VS2010上安裝Windows PowerShell 2.0,具體請看http://support.microsoft.com/kb/968929
接著新建一個項目,我這里選擇新建一個asp.net Web應用程序項目:
在“視圖”菜單 –> “其他窗口”中,找到如下:
選擇“Package Manager Console”:
?
我們看下NuGet都有哪些指令,輸入get-help NuGet
?
這里輸入“Install-Package elmah”,進行elmah安裝(在你安裝完之后你也可以通過Update-Package從網(wǎng)站上更新最新版本的包,也可以通過Uninatall-Package卸載Elmah):
OK,安裝成功。這時候你可以看到項目中引入了Elmah引用:
你也可以通過點擊右鍵:
選擇“Add Library Package Refernece”進行卸載Elmah:
您還可以看到Web.config中也自動增加了一些Elmah的相關(guān)配置:
<sectionGroup?name="elmah">??????<section?name="security"requirePermission="false"type="Elmah.SecuritySectionHandler,?Elmah"/>
??????<section?name="errorLog"requirePermission="false"type="Elmah.ErrorLogSectionHandler,?Elmah"/>
??????<section?name="errorMail"requirePermission="false"type="Elmah.ErrorMailSectionHandler,?Elmah"/>
??????<section?name="errorFilter"requirePermission="false"type="Elmah.ErrorFilterSectionHandler,?Elmah"/>
????</sectionGroup>
……
<httpHandlers>
??????<remove?verb="*"path="*.asmx"/>
??????<add?verb="*"path="*.asmx"validate="false"type="System.Web.Script.Services.ScriptHandlerFactory,?System.Web.Extensions,?Version=3.5.0.0,?Culture=neutral,?PublicKeyToken=31BF3856AD364E35"/>
??????<add?verb="*"path="*_AppService.axd"validate="false"type="System.Web.Script.Services.ScriptHandlerFactory,?System.Web.Extensions,?Version=3.5.0.0,?Culture=neutral,?PublicKeyToken=31BF3856AD364E35"/>
??????<add?verb="GET,HEAD"path="ScriptResource.axd"type="System.Web.Handlers.ScriptResourceHandler,?System.Web.Extensions,?Version=3.5.0.0,?Culture=neutral,?PublicKeyToken=31BF3856AD364E35"validate="false"/>
??????<add?verb="POST,GET,HEAD"path="elmah.axd"type="Elmah.ErrorLogPageFactory,?Elmah"/>
????</httpHandlers>
????<httpModules>
??????<add?name="ScriptModule"type="System.Web.Handlers.ScriptModule,?System.Web.Extensions,?Version=3.5.0.0,?Culture=neutral,?PublicKeyToken=31BF3856AD364E35"/>
??????<add?name="ErrorLog"type="Elmah.ErrorLogModule,?Elmah"/>
????</httpModules> ????<httpHandlers>
??????<add?verb="POST,GET,HEAD"path="elmah.axd"type="Elmah.ErrorLogPageFactory,?Elmah"/>
????</httpHandlers>
NuGet還是非常不錯的東西,除了支持Elmah,其實還支持很多類似安裝包的安裝以及卸載。
轉(zhuǎn)載于:https://www.cnblogs.com/smileberry/p/3524822.html
總結(jié)
以上是生活随笔為你收集整理的【工具推荐】ELMAH——可插拔错误日志工具(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SharePoint 2013安装图文教
- 下一篇: jQuery事件之鼠标事件