目前我記錄異常,如下 -異常記錄
public ActionResult Login()
{
try
{
throw new Exception("test");
}
catch (Exception ex)
{
LogException(ex);
}
return View();
}
我可以得到大約從這裏LogException()
方法異常清晰&詳細信息。見如下─
Created on: 27-Dec-2016, 06.34.33 PM
Type: System.Exception
Error Description: test
Source File: ...\Controllers\LoginController.cs
Method: Login
Line: 20
Column: 17
我試圖在同一個方法 -
public class MyCustomAttribute : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
Exception ex = filterContext.Exception;
LogException(ex)
}
}
public class MyCustomAttribute : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
Exception ex = filterContext.Exception;
LogException(ex)
}
}
我也嘗試過載onException的方法 -
public abstract class BaseController : Controller
{
public BaseController() {}
protected override void OnException(ExceptionContext filterContext)
{
Exception ex = filterContext.Exception;
filterContext.ExceptionHandled = true;
LogException(ex);
}
}
在所有三個abose情況下,我沒有得到有關的信息來源文件,方法,行和列 -
Created on: 27-Dec-2016, 06.44.45 PM
Type: System.Exception
Error Description: test
Source File:
Method: <BeginInvokeAction>b__1e
Line: 0
Column: 0
這是我的方法記錄exception-
public static void Create(Exception exception, String rootDirectoryPath)
{
try
{
StackTrace st = new StackTrace(exception, true);
StackFrame frame = st.GetFrame(st.FrameCount - 1);
string fileName = frame.GetFileName();
string methodName = frame.GetMethod().Name;
int line = frame.GetFileLineNumber();
int col = frame.GetFileColumnNumber();
//Other code .....
}
catch (Exception)
{
//do nothing.
}
}
我的問題是,是否有可能恢復從這些3箱子源文件,方法的行和列的信息?
我不想每次都寫try .. catch..
來處理異常。
我聽說過ELMAH & Log4Net。但不確定這些圖書館是否能夠從例外中提供我想要的信息。
很抱歉的長期問題。
那麼,如果我想以我的方式,而不是ELMAH? –
然後,我會建議你檢查他們的源代碼,看看他們是如何做和複製你的代碼:https://github.com/elmah/Elmah –