2013-03-01 2 views
2

Я использую событие Application_Error в глобальном asax для обнаружения ошибок и записи их в файл. Я могу видеть конкретное исключение в веб-страницы, но в лог-файл все, что я вижу, это общая ошибка, как это:catching specific error in global.asax

Exception of type 'System.Web.HttpUnhandledException' was thrown. 
    at System.Web.UI.Page.HandleError(Exception e) 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
    at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 
    at System.Web.UI.Page.ProcessRequest() 
    at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) 
    at System.Web.UI.Page.ProcessRequest(HttpContext context) 
    at ASP.review_aspx.ProcessRequest(HttpContext context) in c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\...\ff7eee7c\ff24ade1\App_Web_tddyd4bt.3.cs:line 0 
    at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

Как я могу писать ошибки, как я вижу, в желтой странице в лог-файл вместо эта общая ошибка?

ответ

3

Это то, что вы ищете?

Exception ex = Server.GetLastError();  
String ExceptionMessage = (ex.InnerException != null) ? ex.InnerException.Message : ex.Message; 
0

В Global.asax, найти метод Application_Error и добавьте следующее:

protected void Application_Error(object sender, EventArgs e) 
    { 
     Exception ex = Server.GetLastError(); 
     LogHelper.WriteLog(ex); 
    } 

Вам нужно создать класс для записи журнала ..

public class LogHelper 
{ 
    public static void WriteLog(Exception exception) 
    { 
     //write to text file the exception.Message ... 
    } 
}