【问题标题】:Should I log more than exceptions with Elmah?我应该用 Elmah 记录更多的异常吗?
【发布时间】:2014-11-27 14:09:37
【问题描述】:

我想知道我究竟应该记录什么。我的意思是,我可以记录异常,这很标准,但我可以使用 Elmah 记录其他内容吗?

我实际上并没有使用那么多的 try, catch 块。我读到这些应该只用于特殊情况例外而不是“标准行为”,因为它们会降低性能。

通常我使用简单的 if 子句来防止发生异常。

例如简单除以 0。

int z = x/y;

我会这样写:

int z;
if(y!=0)
{
  z = x/y;
}
else
{
   z=0;
}

现在这对我来说完全可以接受。

我不认为这是一个例外,但仍然......我想知道某处 y 参数等于 0。

可以使用 Elmah 记录这些信息吗?还是我应该使用其他东西?

【问题讨论】:

    标签: c# asp.net-mvc elmah


    【解决方案1】:

    您可以轻松地手动使用 elmah 登录。只需致电:

     ErrorSignal.FromCurrentContext().Raise(new Exception());
    

    对于自定义消息,只需运行:

     var customEx = new Exception("Hey y!=0!!!"); 
     ErrorSignal.FromCurrentContext().Raise(customEx);
    

    您还可以决定使用 log4net 或 nlog 进行更复杂的日志记录并使用 Elmah appender

    【讨论】:

    • 是的,我知道我可以做到这一点以及如何做到这一点。问题是不同的:) - 对于我提出的场景可以经常这样做吗?会不会影响性能等等...
    • 它是记录日志,不是异常处理,所以速度很快,不应该是性能问题。我测试了应该场景非常大的数据量并且我没有任何问题
    【解决方案2】:

    你也可以做一个助手来记录你自己的错误:

    public static void OwnError(Exception e, String myMsg)
    {
         var exception = new Exception(myMsg, e);
         Elmah.ErrorSignal.FromCurrentContext().Raise(exception);    
    }
    

    【讨论】:

      猜你喜欢
      • 2011-05-03
      • 2011-06-04
      • 2019-03-02
      • 1970-01-01
      • 2010-09-10
      • 2014-03-26
      • 2010-10-23
      • 2015-11-11
      相关资源
      最近更新 更多