2

我在 ASP.NET 网站中使用 MS 企业日志记录应用程序块。

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

  • Sql 服务器数据库
  • Windows 事件日志
  • 文本文件

哪个对性能影响最小?

注意 - 我现在不能切换到 Log4Net 或 ELMAH,所以请不要在你的回复中提出这个建议。

4

3 回答 3

1

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

OTOH,如果您不打算进行大量日志分析,只是在极少数情况下查看日志以找出导致问题的原因,那么文本文件更易于设置和管理。

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

无论您做出何种决定,在投入生产之前对其进行性能测试。

于 2010-09-10T17:13:46.727 回答
0

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

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

另外,考虑可访问性,哪一个更容易访问,而无需访问机器。该数据库将是该类别中的候选对象...

HTH。

于 2010-09-10T16:56:06.297 回答
0

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

  1. FormattedDatabaseTraceListener 用于严重性为“错误”和“严重”的消息。
  2. 特殊来源的平面文件跟踪侦听器,以防日志记录数据库关闭。

任何具有较低严重性的东西,我们都不会记录。

于 2010-12-22T21:21:31.697 回答