我有一个部署到azure的Web应用程序,但我不知道如何记录错误。
出于测试目的,我有这个ForceError方法:
public string ForceError()
{
throw new Exception("just a test exception");
return "ok";
}
但是我强制的错误没有出现在选定的存储容器中。
您知道我该怎么做才能开始记录应用程序中的所有错误吗?
答案 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
除了记录事件的基本信息外,blob存储还会记录其他信息,例如实例ID,线程ID以及CSV中更精细的时间戳(刻度格式)。
关于日志提示和工具的精彩文章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方法。如果需要,您可以传递更多详细信息。