簡體   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