2016-02-29 45 views
11

我有一個部署到Azure的Web應用程序,但我不知道如何記錄錯誤。Azure中的ASP.NET Web應用程序 - 如何記錄錯誤?

出於測試目的,我有這個ForceError方法:

public string ForceError() 
{ 
    throw new Exception("just a test exception"); 
    return "ok"; 
} 

導致和錯誤是這樣的: enter image description here

在Azure上我啓用了所有的診斷日誌是這樣的: enter image description here

但我強制的錯誤不會出現在選定的存儲容器中。

你知道我應該怎麼做才能開始記錄應用程序中的所有錯誤?

回答

5

在Azure網站上,記錄的最佳方式是Application Insights,您可以使用免費版本獲取關於崩潰/速度/性能的見解。

但是,如果啓用所有功能,Application Insights會稍微慢一點。但是,如果您對其進行自定義並僅啓用錯誤日誌記錄,則會將所有日誌推送到您的天青應用程序洞察帳戶,並且您將能夠非常好地監控/分析它。

有關詳細信息: https://azure.microsoft.com/en-in/documentation/articles/app-insights-api-custom-events-metrics/

,而不是自動配置應用見解,我建議,拿一個空的工程,安裝應用程序的見解。注意所有添加的配置文件和nuget包。有一些洞察配置文件,除了應用程序密鑰/簽名之外,您可以關閉所有內容。

只有當您想手動跟蹤異常時,您可以創建TelemetryClient並調用TrackException方法。如果您需要,您可以傳遞更多細節。

+0

嗨,這似乎是我正在尋找。您能詳細說明如何將App Insights用於「錯誤級別」日誌記錄和/或提供參考嗎? – nest

+1

只是一個補充,如果像我一樣使用mvc框架,這個告訴瞭如何去做。 https://azure.microsoft.com/en-us/documentation/articles/app-insights-asp-net-exceptions/#mvc – nest

11

恐怕只是拋出異常在Azure Web應用程序日誌中不起作用。

ASP.NET應用程序可以使用System.Diagnostics.Trace類將信息記錄到應用程序診斷日誌。例如,在四個方法在下面的診斷日誌級別對應:

Trace.TraceError("Message"); // Write an error message 
Trace.TraceWarning("Message"); // Write a warning message 
Trace.TraceInformation("Message"); // Write an information message 
Trace.WriteLine("Message"); // Write a verbose message 

enter image description here

除了爲記錄的事件,Blob存儲日誌的其它信息,如實例ID,線程ID,和更基本信息粒度時間戳(勾號格式),CSV格式。

enter image description here

有關記錄的技巧和工具一個偉大的文章here

另請參閱參考官方Azure Web Apps Logging Document

相關問題