Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
生产中应该使用什么日志侦听器?(ASP.NET/日志记录应用程序块)_Asp.net_Performance_Logging_Enterprise Library_Logging Application Block - Fatal编程技术网

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

生产中应该使用什么日志侦听器?(ASP.NET/日志记录应用程序块),asp.net,performance,logging,enterprise-library,logging-application-block,Asp.net,Performance,Logging,Enterprise Library,Logging Application Block,我正在ASP.NET网站中使用MS Enterprise Logging应用程序块 对于生产启动,我将在以下位置之一设置日志侦听器: Sql Server数据库 Windows事件日志 文本文件 哪一项对性能的影响最小 注意-目前我无法切换到Log4Net或ELMAH,因此请不要在您的回复中建议这样做。我们使用事件日志,这似乎不会影响性能。我不能正确地告诉你每一个之间的区别。。。当它与数据库一起提供时,这要视情况而定。数据库是在同一台机器上,还是在另一台机器上?是在全国的中途吗 通常,数据库

我正在ASP.NET网站中使用MS Enterprise Logging应用程序块

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

  • Sql Server数据库
  • Windows事件日志
  • 文本文件
哪一项对性能的影响最小


注意-目前我无法切换到Log4Net或ELMAH,因此请不要在您的回复中建议这样做。

我们使用事件日志,这似乎不会影响性能。我不能正确地告诉你每一个之间的区别。。。当它与数据库一起提供时,这要视情况而定。数据库是在同一台机器上,还是在另一台机器上?是在全国的中途吗

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

另外,考虑可访问性,哪一个更容易访问而不必访问该机器。该数据库将是该类别中的首选候选数据库


HTH.

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

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

事件日志是可以的,但是如果你要使用它,考虑只使用它来处理重大错误,不要用一堆不重要的消息来处理它。将其与SQL或文本文件结合使用,并将这些重大错误记录到两个位置


无论您决定什么,在投入生产之前都要测试它的性能。

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

  • 严重性为“错误”和“严重”的邮件的FormattedDatabaseTraceListener
  • 用于特殊资源的平面文件跟踪侦听器,以防日志数据库关闭

  • 任何严重性较低的事件,我们都不会进行日志记录。

    数据库与web服务器位于同一交换机上。关于磁盘IO,事件日志是否最终存储在磁盘上?还有一个问题,您如何处理事件日志的可访问性?您可以将事件日志发送到生产环境之外的另一台机器上吗?同一服务器上的数据库将非常快,但确实需要您进行一些测试以确定速度。事件日志位于磁盘上,但由事件管理器管理。我不确定你是否能发货,这就是为什么我提到了关于访问的最后一条声明。如果您使用磁盘IO,您必须将其写入磁盘,或者使用XML、CSV等。很久以前,但是您是如何实现切换的,我的意思是,当db关闭时,您如何告诉记录器要使用哪个日志类别?