ELMAH在其錯誤日誌網頁上默認顯示主機,代碼,類型,錯誤,用戶,日期和時間。有什麼方法可以配置它並顯示其他字段,如IP或REFERER?自定義elmah.axd輸出字段
elmah output example http://elmah.googlecode.com/svn/wiki/homeshot.png
ELMAH在其錯誤日誌網頁上默認顯示主機,代碼,類型,錯誤,用戶,日期和時間。有什麼方法可以配置它並顯示其他字段,如IP或REFERER?自定義elmah.axd輸出字段
elmah output example http://elmah.googlecode.com/svn/wiki/homeshot.png
ELMAH是開源的。您可以下載源代碼並進行任何修改(當然,在許可證條款內)。
您應該能夠捕獲由HttpConext.Request
對象提供的任何數據。您必須修改抓取和存儲數據的代碼,並修改數據庫以創建新數據的列。
你可以編寫自己的錯誤頁面。綁定到數據網格,並ErrorLog.GetErrors()
使用任何你想要的列:
List<ErrorLogEntry> entries = new List<ErrorLogEntry>();
ErrorLog.GetDefault(HttpContext.Current).GetErrors(0, 50, entries);
string ip = entries[0].Error.ServerVariables["REMOTE_ADDR"];
string referrer = entries[0].Error.ServerVariables["HTTP_REFERER"];
這幾乎可以工作,除了當前版本的Elmah(不知道這是否與以前不同),GetErrors()沒有完全填充ErrorLogEntry對象。特別是,ServerVariables是空的。您必須使用GetErrors(),然後爲每個ErrorLogEntry對象調用GetError(id)以獲取完全填充的ErrorLogEntry對象... – 2011-11-30 18:34:35
我將修改源,如果我不得不這樣做。我希望有一種內置的方式來配置顯示的字段 – kenwarner 2010-03-30 17:28:16
我不認爲有任何方式通過配置進行這些更改,您必須修改源代碼。 – 2010-03-30 17:29:01