Ineed寫的錯誤處理程序助手類我的asp.net mvc的項目..asp.net的MVC錯誤處理Helper類
任何人可以給我的代碼怎麼寫,並在那裏寫這個輔助類在我機應用?
我需要使用此錯誤登錄控制器級別。 我不想使用try和catch塊爲我的控件中的每個Actionresult .. 我需要使用控制器級別?
cananybody help me out?
謝謝
Ineed寫的錯誤處理程序助手類我的asp.net mvc的項目..asp.net的MVC錯誤處理Helper類
任何人可以給我的代碼怎麼寫,並在那裏寫這個輔助類在我機應用?
我需要使用此錯誤登錄控制器級別。 我不想使用try和catch塊爲我的控件中的每個Actionresult .. 我需要使用控制器級別?
cananybody help me out?
謝謝
我可以建議你使用elmah。這對錯誤記錄很有用,你可以從這裏閱讀:http://www.hanselman.com/blog/ELMAHErrorLoggingModulesAndHandlersForASPNETAndMVCToo.aspx
我做了什麼,我對它滿意的是以下內容。我做了一個自定義的處理錯誤屬性,它具有下面的代碼:
public class HandleErrorAttribute : System.Web.Mvc.HandleErrorAttribute
{
public override void OnException(ExceptionContext context)
{
base.OnException(context);
var e = context.Exception;
if (!context.ExceptionHandled // if unhandled, will be logged anyhow
|| ExceptionHelper.RaiseErrorSignal(e) // prefer signaling, if possible
|| IsFiltered(context)) // filtered?
return;
ExceptionHelper.LogException(e);
}
private static bool IsFiltered(ExceptionContext context)
{
var config = context.HttpContext.GetSection("elmah/errorFilter")
as ErrorFilterConfiguration;
if (config == null)
return false;
var testContext = new ErrorFilterModule.AssertionHelperContext(
context.Exception, HttpContext.Current);
return config.Assertion.Test(testContext);
}
}
而且我有一個ExceptionHelper類與此代碼:
public static class ExceptionHelper
{
public static bool RaiseErrorSignal(Exception e)
{
var context = HttpContext.Current;
if (context == null)
return false;
var signal = ErrorSignal.FromContext(context);
if (signal == null)
return false;
signal.Raise(e, context);
return true;
}
public static void LogException(Exception e)
{
var context = HttpContext.Current;
ErrorLog.GetDefault(context).Log(new Error(e, context));
}
然後我就註解我的基本控制器類MyNamspace.HandleError
和現在所有的異常都被處理和記錄下來,當出現問題時我甚至會收到一封郵件......
配對,耐心使用「爲我寫的代碼」+1 – BritishDeveloper 2010-07-25 22:27:37
爲您寫錯誤日誌? hmmmm。幸運的是,有人已經有:你需要log4net
你到目前爲止試過了什麼?你有沒有遇到任何你可能會問到的問題? – 2010-07-21 06:17:55