我已閱讀了幾篇關於登錄Azure網站的文章,但無法做出最終決定。我最大的問題是使用或不使用第三方庫進行日誌記錄。 我發現內置的診斷功能非常好。我可以使用它來創建調試日誌,例如「ID爲[X]的Xyz由用戶[abc] ...創建」,並將這些跟蹤消息一起存儲在Azure表存儲中,但我不確定這將用於我足夠長。另一方面,我認爲同時使用內置跟蹤和NLog,有點矯枉過正。正確的方式登錄在Azure中運行的ASP.NET網站
有關此主題的任何經驗/建議?
我已閱讀了幾篇關於登錄Azure網站的文章,但無法做出最終決定。我最大的問題是使用或不使用第三方庫進行日誌記錄。 我發現內置的診斷功能非常好。我可以使用它來創建調試日誌,例如「ID爲[X]的Xyz由用戶[abc] ...創建」,並將這些跟蹤消息一起存儲在Azure表存儲中,但我不確定這將用於我足夠長。另一方面,我認爲同時使用內置跟蹤和NLog,有點矯枉過正。正確的方式登錄在Azure中運行的ASP.NET網站
有關此主題的任何經驗/建議?
您可以使用NLog或類似庫並添加一個可寫入System.Diagnostics.Trace的接收器。
這樣你就可以享受這兩個世界,一方面很容易將這些日誌導向到文件/ blob/table,在那裏你可以從門戶(它不會重新啓動你的網站)和日誌級別其他你可以享受這些第三方庫的好處。
選擇正確的日誌記錄方法很大程度上取決於您的日誌記錄需要什麼。對於ASP.NET,如果日誌是「基於請求」而不是僅包含所有事件的純文本文件,則它總是有幫助的。有許多不同的日誌框架可用,但我想強調一個「開箱即用」功能,如果要測量請求的性能並且如果您希望跟蹤是基於請求的,那麼它的功能非常好。我基本上談論ASP.NET中的舊Trace.Write。通過web.config中的以下配置,每當啓用FREB跟蹤時,ASP.NET跟蹤事件都將登錄到FREB。
<system.web>
<trace enabled="true" pageOutput="false" requestLimit="10000" writeToDiagnosticsTrace="true" />
</system.web>
<system.diagnostics>
<sharedListeners>
<add name="System.Net.IISETW" type="System.Web.IisTraceListener,System.Web,version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
這樣,當您啓用失敗請求提到here跟蹤,你的自定義事件就會開始顯示在FREB的痕跡了,你可以看到每個事件之間花費了多少時間在這給你一個好辦法確定在您的請求執行中花費了多少時間。
希望這有助於!
感謝您的回答,但對我而言,Azure Application Insights看起來像是一個NewRelic競爭對手。這不是主要用於伐木,我的問題與此有關。 – laszlokiss88
@ laszlokiss88 - 你可以登錄到應用程序的見解......它做了很多不同的事情,包括日誌..但不,它不是它的主要目的。您甚至可以使用接收器來處理來自各種日誌框架(如serilog)的應用程序見解。 –