我目前正在和Elmah合作,非常喜歡它。我有幾個問題雖然:關於Elmah的一些問題
有沒有什麼辦法,當我登錄異常,我可以添加自定義數據到異常日誌記錄,將異常記錄?
當我的網站發生錯誤時,我希望能夠將用戶重定向到錯誤頁面,併爲它包含異常的唯一標識符,該異常使用異常記錄,但也顯示在屏幕上,所以我可以在用戶報告時追蹤它。這可能嗎?
是否有指示可以告訴我的任何地方我可以設置異常記錄到磁盤?
我目前正在和Elmah合作,非常喜歡它。我有幾個問題雖然:關於Elmah的一些問題
有沒有什麼辦法,當我登錄異常,我可以添加自定義數據到異常日誌記錄,將異常記錄?
當我的網站發生錯誤時,我希望能夠將用戶重定向到錯誤頁面,併爲它包含異常的唯一標識符,該異常使用異常記錄,但也顯示在屏幕上,所以我可以在用戶報告時追蹤它。這可能嗎?
是否有指示可以告訴我的任何地方我可以設置異常記錄到磁盤?
您可以使用請求/響應模板。如果用戶獲得異常設置響應false,請使用Elmah記錄錯誤,並將帶有唯一錯誤標識的錯誤消息返回給最終用戶。你可以看到下面的代碼示例:
public class Response
{
public string Message { get; set; }
public bool Success { get; set; }
}
public class ErrorLog
{
public static string GenerateErrorRefMessageAndLog(Exception exception)
{
string uniqueId = Guid.NewGuid().ToString();
Exception newEx = new Exception(uniqueId, exception);
Elmah.ErrorSignal.FromCurrentContext().Raise(newEx);
return String.Format("If you wish to contact us please quote reference '{0}'", uniqueId);
}
}
public class YourClass
{
var response = new Response();
try
{
//Bussines logic here
response.Success = true;
}
catch (Exception ex)
{
// Shield Exceptions
response.Message = ErrorLog.GenerateErrorRefMessageAndLog(ex);
response.Success = false;
}
return response;
}
這是url如何配置Elmah。 http://www.asp.net/web-forms/tutorials/deployment/deploying-web-site-projects/logging-error-details-with-elmah-cs
您可以添加到任何異常的數據收集。你可以在try catch塊,Global.asax中的Application_Error處理程序或註冊的HandleErrorAttribute中執行此操作。
exception.Data.Add("key", "additional info");
您可以使用Elmah的配置登錄到文件。確保您已將用戶權限設置到此位置。
<elmah>
<security allowRemoteAccess="yes" />
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/ErrorLogs" />
</elmah>
web.config部分工作。 – Rahatur