2016-02-29 105 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

相关问题