繁体   English   中英

Azure应用服务跟踪

[英]Azure App Service Tracing

我们在Azure App Service中部署了一个应用程序,它具有以下日志记录配置:

在此处输入图片说明

如果我们不在System.Diagnostics命名空间(System.Diagnostics.Trace / System.Diagnostics.TraceSource)中使用任何方法,那么此设置的意义是什么? 我们注意到,当级别设置为“详细”时,系统性能较差;而当级别设置为“警告”时,性能会提高。 但是,我们没有使用以下代码

System.Diagnostics.Trace.TraceInformation或System.Diagnostics.Trace.WriteLine

写迹线。

请记住,代码不是输入请求时唯一执行的代码。

即使您没有在应用程序中使用System.Diagnostics.Trace命名空间,也可能有一些NuGet程序包或其他依赖项。

除此之外,托管您的应用程序的服务器代码将此输入作为标记来启动必要的过程以侦听和捕获跟踪事件,并且它本身与应用程序竞争资源。

您应该检查Blob存储中的输出文件,以了解详细级别会生成多少数据。

除非您想收集信息以诊断问题,否则不应将日志记录设置为冗长。 对于生产工作负载,通常需要将其仅设置为错误。

正如其他人所说,即使您不在代码中调用跟踪方法,底层组件也可能会这样做。 如果启用了跟踪,并且随着时间的推移,它可能会导致内存增加和性能下降。

您可以在本文中找到详细信息:

在启用了跟踪的生产环境中运行

ASP.NET跟踪是用于对应用程序进行故障排除的强大功能,但是绝对不应在生产环境中使用它。 ASP.NET跟踪使用诸如DataTables之类的数据结构来存储跟踪信息,随着时间的流逝,这些结构可能导致内存过多,从而导致OOM。

有关更多信息,请参见此博客文章。

正如Byron Tardif在答复中提到的那样,如果可能的话,您可以在生产环境中将Level设置为error。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM