【问题标题】:Some questions on Elmah关于Elmah的一些问题
【发布时间】:2012-12-31 03:08:26
【问题描述】:

我目前正在与 Elmah 合作,非常喜欢它。不过我有几个问题:

当我记录异常时,有什么方法可以将自定义数据添加到异常记录中,该异常记录将与异常一起记录?

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

是否有任何说明可以告诉我可以将异常记录设置到磁盘?

【问题讨论】:

    标签: asp.net-mvc model-view-controller elmah


    【解决方案1】:

    您可以向数据集合中添加任何异常。您可以在 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>
    

    【讨论】:

      【解决方案2】:

      您可以使用请求/响应模式。如果用户得到异常设置响应为 false,则使用 E​​lmah 记录错误并将具有唯一错误 ID 的错误消息返回给最终用户。您可以在下面看到代码示例:

      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;
      }
      

      这是如何配置 Elmah 的 url。 http://www.asp.net/web-forms/tutorials/deployment/deploying-web-site-projects/logging-error-details-with-elmah-cs

      【讨论】:

        猜你喜欢
        • 2018-05-24
        • 2013-07-07
        • 2013-05-10
        • 2012-03-18
        • 2023-03-09
        • 2021-07-01
        • 2011-09-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多