【问题标题】:What is the cost of using Elmah to manually log an error?使用 Elmah 手动记录错误的成本是多少?
【发布时间】:2012-11-24 21:41:09
【问题描述】:

this stackoverflow question 的回答讨论如何使用 Elmah 手动或以编程方式记录处理的异常,但不讨论成本。使用以下记录处理的异常之间的(理论上)成本差异是什么?

  • Elmah 的 ErrorSignal.Raise
  • Elmah 的 ErrorLog.Log
  • System.Diagnostics.TraceSource(或其他一些日志库)

【问题讨论】:

  • 简单的方法来找出...用一些秒表类做几个循环并试一试

标签: .net error-handling elmah error-logging


【解决方案1】:

这并不是对您问题的真正答案,而是一个讨论点。为什么知道使用 Elmah 的成本(我假设是执行时间?)很重要?

这可能是过早优化的情况。这里或那里的一百毫秒应该无关紧要,除非在一个紧密、长的循环中。如果您的应用程序抛出了足够多的错误,以至于 Elmah 的额外成本累积到拖累性能的地步,我认为您应该改为查看为什么会抛出这么多异常。

是为了保护你的同行使用它吗?大多数日志记录块将表现出非常相似的性能特征,其中最大的因素之一是日志目标的位置或性质。将日志写入磁盘或网络目标等 I/O 操作将比其他日志记录代码花费更多的时间。

【讨论】:

  • 很好奇 Elmah 的 Raise 和 Log 方法之间的区别。我也在考虑将 Elmah 用作通用记录器的可能性;因此很好奇 Elmah 和 TraceSource 之间的区别。
  • 顺便说一句,关于日志目标位置和 I/O 操作的要点。
  • 啊,我明白了。那我建议改写你的问题。 Raise 方法允许通知多个侦听器,而 Log 方法直接记录到日志目标并绕过您设置的任何过滤器规则。
猜你喜欢
  • 2011-11-18
  • 2020-11-24
  • 1970-01-01
  • 2017-05-18
  • 2011-05-25
  • 2018-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多