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

nes*_*est 17 c# asp.net error-logging azure azure-web-sites

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

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

public string ForceError()
{
    throw new Exception("just a test exception");
    return "ok";
}
Run Code Online (Sandbox Code Playgroud)

这样的原因和错误: 在此输入图像描述

在Azure上,我启用了所有诊断日志,如下所示: 在此输入图像描述

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

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

Der*_*rek 27

我担心抛出异常在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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

除了记录事件的基本信息之外,blob存储还记录其他信息,例如实例ID,线程ID以及CSV中更精细的时间戳(刻度格式).

在此输入图像描述

一个伟大的文章在这里有关记录技巧和工具.

另请参阅官方Azure Web Apps日志文档的参考.


Aka*_*ava 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方法.如果需要,您可以传递更多详细信息.