ELMAH 使用

以前大部分系統日誌記錄是使用log4net、ObjectGuy Framework、NLog 等工具記錄到文本或數據庫。 更強大的工具可使用 ELMAH。html

ELMAH(The Error Logging Modules And Handlers),直譯過來就是「錯誤日誌模塊和處理」,它提供了一個用於集中記錄和通知錯誤日誌的機制。它是專用於ASP.NET的徹底可熱插拔的錯誤日誌記錄工具。其特色就是無需ASP.NET程序從新編譯,便可經過配置web.config(或machine.config)來實現整個應用程序甚至是IIS中全部ASP.NET應用程序的錯誤日誌記錄工做。ELMAH既支持ASP.NET Web Forms 又支持 ASP.NET MVC。你能夠對ELMAH進行配置來存儲各類不一樣的錯誤(XML文件,事件日誌,Access數據庫,SQL數據庫,Oracle數據庫,或者計算機 RAM)。除了提供一個界面用於查詢日誌詳細信息外,還能夠經過E-MAIL、RSS等方式通知錯誤信息給相關人員。web

目前ELMAH已有:sql

 

 

 

ELMAH Core Library (no config)--沒有任何配置的ELMAH的核心庫(錯誤日誌模塊和處理程序), 這個只包含程序庫。若是你已經有了自定義ELMAH配置或者你想新建一個,你能夠依賴並使用這個「核心」軟件包。數據庫

ELMAH--依賴於核心的程序庫,是一個「入門」的庫。安全

ELMAH on MS SQL Server --能經過WEB.CONFIG快速配置把錯誤日誌記錄保存到Microsoft SQL Server 數據庫上。ide

ELMAH on XML Log -- 記錄到XML
工具

ELMAH.MVC -- 支持ASP.NET MVC 模式post

 

接着咱們新建一個 ASP.NET 空 Web應用程序,再經過管理NuGet程序包來安裝 ELMAH 測試

 

安裝完畢以後,在解決方案中將看到引用中 多了 "Elmah" 和 package.config 配置文件,這是NuGet 自動配置完成,不須要手動配置(固然須要自定義和其餘設置的仍是須要手動配置)。google

新建一個測試頁面:TestTrace.aspx 在頁面拖放一個文本框和一個按鈕

運行:

接下來咱們經過 「~/elmah.axd」 來訪問ELMAH 記錄的日誌錯誤

 

顯示: No errors found.

沒有錯誤發現是由於還根本沒有寫CODING。 接着我在BUTTON 事件下面寫入如下代碼: 

  protected void Button1_Click(object sender, EventArgs e)
        {
            var txtValue = Convert.ToInt32(TextBox1.Text);
            Response.Write("輸入的值是:" + txtValue);
        }

再次運行 輸入 「ABC」  點擊 Button , 這時候該頁面必定報錯:字符串沒法轉換成INT類型。

若是我自定義錯誤頁面,這時候立馬跳到錯誤頁面 而不知道發生了什麼錯誤。 這是經過「~/elmah.axd」 來看會發現記錄的錯誤有

點擊 「Details...」 查看詳細

 

注:在實際應用中對 「~/elmah.axd」訪問權限應進行訪問限制,具體參考ELMAH:https://code.google.com/p/elmah/

 

 

 

相關連接:

http://blogs.msdn.com/b/scott_hanselman/archive/2011/07/26/nuget-sql-server-compact-elmah.aspx

關於elmah.axd的安全設定

Elmah添加日誌文件訪問權限

利用Elmah和Google入侵的快感

http://www.cnblogs.com/liquanchun/archive/2012/12/21/2827724.html

相關文章
相關標籤/搜索