Richiesta di registrazione e risposta ad Application Insight

Oct 20 2020

Sto cercando di registrare il payload della richiesta API e i dati di risposta in Azure Application Insight. Usando trace posso accedere. ma voglio sapere qual è il modo migliore per registrare i dati di richiesta e risposta a informazioni sull'applicazione. Poiché i dati sono enormi, non ci saranno più chiamate API. Non posso semplicemente tracciare centinaia di migliaia di richieste e dati di risposta utilizzando la traccia. Ho provato alcuni dei blog come usare ITelemetryInitializer / httpcontext.feature, get, ma senza fortuna.

Voglio accedere da c # .Net framework, API Web, non .NET Core.

Codice di esempio che ho provato.

public class AzureRequestResponseInitializer : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        var requestTelemetry = telemetry as RequestTelemetry;
        
        if (requestTelemetry != null && (HttpContext.Current.Request.HttpMethod == HttpMethod.Post.ToString() || HttpContext.Current.Request.HttpMethod == HttpMethod.Get.ToString()))
        {
            using (var reader = new StreamReader(HttpContext.Current.Request.InputStream))
            {
                string requestBody = reader.ReadToEnd();
                requestTelemetry.Properties.Add("body", requestBody);
            }
        } 

Risposte

TomLuo Oct 29 2020 at 02:27

Questa domanda trova risposta in https://thirum.wordpress.com/2019/08/19/logging-the-http-response-body-in-application-insights/

Per favore dai un'occhiata.