我目前正在和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