2010-03-30 65 views

回答

2

ELMAH是開源的。您可以下載源代碼並進行任何修改(當然,在許可證條款內)。

您應該能夠捕獲由HttpConext.Request對象提供的任何數據。您必須修改抓取和存儲數據的代碼,並修改數據庫以創建新數據的列。

+0

我將修改源,如果我不得不這樣做。我希望有一種內置的方式來配置顯示的字段 – kenwarner 2010-03-30 17:28:16

+0

我不認爲有任何方式通過配置進行這些更改,您必須修改源代碼。 – 2010-03-30 17:29:01

4

你可以編寫自己的錯誤頁面。綁定到數據網格,並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"]; 
+3

這幾乎可以工作,除了當前版本的Elmah(不知道這是否與以前不同),GetErrors()沒有完全填充ErrorLogEntry對象。特別是,ServerVariables是空的。您必須使用GetErrors(),然後爲每個ErrorLogEntry對象調用GetError(id)以獲取完全填充的ErrorLogEntry對象... – 2011-11-30 18:34:35