在生产中应该使用什么日志监听器? (ASP.NET /日志应用程序块)

时间:2010-09-10 16:53:01

标签: asp.net performance logging enterprise-library logging-application-block

我在ASP.NET网站上使用MS Enterprise Logging Application Block。

对于生产启动,我将在以下位置之一设置日志监听器:

  • Sql Server数据库
  • Windows事件日志
  • 文本文件

对性能的影响最小?

注意 - 此时我无法切换到Log4Net或ELMAH,因此请不要在回复中提出建议。

3 个答案:

答案 0 :(得分:1)

SQL将为您提供最大的报告灵活性。如果你有一个强大的数据库设置和快速的网络,它可能不会给你带来太多额外的文本文件负担。

OTOH,如果你不打算进行大量的日志分析,只需查看罕见的日志,找出导致问题的原因,那么文本文件就更容易设置和管理。

事件日志没问题,但如果您打算使用它,请考虑仅将其用于重大错误,不要将其与一堆不重要的消息混为一谈。将它与SQL或文本文件结合使用,并将这些重要错误记录到这两个位置。

无论您决定什么,在投入生产之前都要对其性能进行测试。

答案 1 :(得分:0)

我们使用事件日志,这似乎不会影响性能。我无法正确地告诉你每个人之间的区别......当它附带数据库时,它取决于。数据库是在同一台机器上还是在不同的机器上?它是在全国各地的中途吗?

通常,数据库速度很快,但网络延迟会降低进程的速度。磁盘IO通常也很快。用于日志记录的磁盘IO可以快速增长,如果将所有日志存储在同一文件中,则可能不是最佳选择。

另外,考虑可访问性,无需访问计算机即可轻松访问。该数据库将成为该类别中的候选者......

HTH。

答案 2 :(得分:0)

我最终在prod中使用了这个配置:

  1. FormattedDatabaseTraceListener,用于严重性为“error”和“critical”的邮件。
  2. 特殊情况下的平面文件跟踪侦听器,以防日志记录数据库关闭。
  3. 严重程度较低的任何事情,我们都没有记录。