实时环境中的System.Diagnostics.Trace

时间:2014-03-14 15:35:16

标签: c# asp.net performance trace system.diagnostics

我已经向我报告了有关现场网站性能的问题。我似乎无法在任何开发或暂存环境中复制任何这些问题,而且我对开发人员运行的分析器没有发现任何异常。

这使我转向诊断跟踪以获得简单的时序跟踪,因此我至少可以尝试找出原因并尝试将其缩小范围。

我很高兴添加

System.Diagnostics.Trace.WriteLine("....");

在必要时添加一个监听器(通过web.config条目)写出日志文件,但是这会对现场环境本身的性能产生巨大影响吗?

还有什么我需要考虑的,可能会让它在周末运行吗?即,我最好在关闭和打开新文件之前指定日志文件的大小?

2 个答案:

答案 0 :(得分:0)

这取决于您要记录多少数据,因此请打开记录器并检查您的应用程序是否正常运行。此外,如果记录到日志文件会降低应用程序速度,请考虑使用更快的TraceListener,例如EventLogTraceListener(您可以为此目的创建一个专用事件日志,具有最大大小和日志滚动)。如果记录到文件不是问题,请获取EssentialDiagnostics RollingFileTraceListener。它有很多选项,包括设置最大文件大小和滚动文件数。

答案 1 :(得分:-1)

使用log4NET之类的日志记录框架并进行日志记录,如:

LogManager.GetCurrentClassLogger().Debug("...");

当您在配置中禁用后续日志记录时,框架不会执行这些功能。

如果需要为消息进行字符串格式化:使用“DebugFormat()”,如果所需的日志记录级别不需要格式化,则不会进行格式化。