Azure中的ASP.NET Web应用程序 - 如何记录错误?

时间:2016-02-29 14:40:19

标签: c# asp.net azure azure-web-sites error-logging

我有一个部署到azure的Web应用程序,但我不知道如何记录错误。

出于测试目的,我有这个ForceError方法:

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

这样的原因和错误: enter image description here

在Azure上,我启用了所有诊断日志,如下所示: enter image description here

但是我强制的错误没有出现在选定的存储容器中。

您知道我该怎么做才能开始记录应用程序中的所有错误吗?

2 个答案:

答案 0 :(得分:25)

我担心抛出异常在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的参考资料。

答案 1 :(得分:9)

在Azure网站上,最好的记录方式是Application Insights,您可以使用免费版本来获取有关崩溃/速度/性能的见解。

但是,如果启用所有内容,Application Insights的速度会慢一些。但是,如果您自定义它并仅启用错误记录,它会将所有日志推送到您的Azure应用程序洞察帐户,您将能够非常好地监视/分析它。

了解更多详情: https://azure.microsoft.com/en-in/documentation/articles/app-insights-api-custom-events-metrics/

我建议,不要自动配置Application Insights,采取空项目,设置应用程序洞察。注意所有添加的配置文件和nuget包。有一些洞察配置文件,除应用程序密钥/签名外,您可以关闭所有内容。

只有当您想手动跟踪异常时,才能创建TelemetryClient并调用TrackException方法。如果需要,您可以传递更多详细信息。