如何将 ASP.NET Web API 请求正文记录到 Application Insights 失败中?

How to log ASP.NET Web API request body into a Application Insights failure?

我正在使用 TelemetryClient 将未处理的异常记录到 Azure 上的 Application Insights。

public class GlobalExceptionLogger : ExceptionLogger
{
    public override void Log(ExceptionLoggerContext context)
    {
        if (context != null && context.Exception != null)
        {
              //For simplification a new TelemetryClient instance
              //This is not recommended!
              new TelemetryClient().TrackException(context.Exception);
        }
        base.Log(context);
    }
}

有没有办法记录 Web API 请求正文,以便我可以在 Azure 门户的 Application Insights 仪表板上查看它?

您可以创建 ExceptionTelemetry 实例并添加自定义属性。然后调用通用的Track方法。

var telemetry = new ExceptionTelemetry(context.Exception);
telemetry.Properties.Add("name", "value");
new TelemetryClient().Track(telemetry);