2012-12-31 95 views
1

我目前正在和Elmah合作,非常喜欢它。我有几个问题虽然:关于Elmah的一些问题

有没有什么办法,当我登录异常,我可以添加自定义数据到异常日志记录,将异常记录?

当我的网站发生错误时,我希望能够将用户重定向到错误页面,并为它包含异常的唯一标识符,该异常使用异常记录,但也显示在屏幕上,所以我可以在用户报告时追踪它。这可能吗?

是否有指示可以告诉我的任何地方我可以设置异常记录到磁盘?

回答

0

您可以使用请求/响应模板。如果用户获得异常设置响应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

2

您可以添加到任何异常的数据收集。你可以在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> 
+0

web.config部分工作。 – Rahatur