Utforska spårningsloggar för .NET/.NET Core och Python i Application Insights

Skicka diagnostikspårningsloggar för ditt ASP.NET/ASP.NET Core-program från ILogger, NLog, log4Net eller System.Diagnostics.Trace till Azure Application Insights. För Python-program skickar du diagnostikspårningsloggar med hjälp av AzureLogHandler i OpenCensus Python för Azure Monitor. Du kan sedan utforska och söka efter dem. Dessa loggar sammanfogas med de andra loggfilerna från ditt program. Du kan använda dem för att identifiera spårningar som är associerade med varje användarbegäran och korrelera dem med andra händelser och undantagsrapporter.

Anteckning

Behöver du logginsamlingsmodulen? Det är ett användbart kort för tredjepartsloggare. Men om du inte redan använder NLog, log4Net eller System.Diagnostics.Trace kan du anropa Application Insights TrackTrace() direkt.

Anteckning

Stödet för inmatning av instrumentationsnycklar upphör den 31 mars 2025. Inmatningen av instrumenteringsnyckeln fortsätter att fungera, men vi kommer inte längre att tillhandahålla uppdateringar eller stöd för funktionen. Övergå till anslutningssträngar för att dra nytta av nya funktioner.

Installera loggning på din app

Installera det valda loggningsramverket i projektet, vilket bör resultera i en post i app.config eller web.config.

 <configuration>
  <system.diagnostics>
    <trace>
      <listeners>
        <add name="myAppInsightsListener" type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

Konfigurera Application Insights för att samla in loggar

Lägg till Application Insights i projektet om du inte har gjort det ännu. Du ser ett alternativ för att inkludera logginsamlaren.

Eller högerklicka på projektet i Solution Explorer för att konfigurera Application Insights. Välj alternativet Konfigurera spårningssamling .

Anteckning

Finns det inget alternativ för Application Insights-menyn eller logginsamlaren? Prova att felsöka.

Manuell installation

Använd den här metoden om projekttypen inte stöds av Installationsprogrammet för Application Insights. Om det till exempel är ett Windows-skrivbordsprojekt.

  1. Om du planerar att använda log4net eller NLog installerar du det i projektet.

  2. I Solution Explorer högerklickar du på projektet och väljer Hantera NuGet-paket.

  3. Sök efter Application Insights.

  4. Välj något av följande paket:

NuGet-paketet installerar nödvändiga sammansättningar och ändrar web.config eller app.config om det är tillämpligt.

ILogger

Exempel på hur du använder Application Insights ILogger-implementeringen med konsolprogram och ASP.NET Core finns i ApplicationInsightsLoggerProvider för .NET Core ILogger-loggar.

Infoga diagnostiklogganrop

Om du använder System.Diagnostics.Trace är ett typiskt anrop:

System.Diagnostics.Trace.TraceWarning("Slow response - database01");

Om du föredrar log4net eller NLog använder du:

    logger.Warn("Slow response - database01");

Använda EventSource-händelser

Du kan konfigurera System.Diagnostics.Tracing.EventSource-händelser som ska skickas till Application Insights som spårningar. Installera först NuGet-paketet Microsoft.ApplicationInsights.EventSourceListener . TelemetryModules Redigera sedan avsnittet i ApplicationInsights.config-filen.

    <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
      <Sources>
        <Add Name="MyCompany" Level="Verbose" />
      </Sources>
    </Add>

För varje källa kan du ange följande parametrar:

  • Namnet anger namnet på den EventSource som ska samlas in.
  • Nivån anger loggningsnivån som ska samlas in: Kritisk, Fel, Information, LogAlways, Utförlig eller Varning.
  • Nyckelord (valfritt) anger heltalsvärdet för nyckelordskombinationer som ska användas.

Använda DiagnosticSource-händelser

Du kan konfigurera System.Diagnostics.DiagnosticSource-händelser som ska skickas till Application Insights som spårningar. Installera först NuGet-paketet Microsoft.ApplicationInsights.DiagnosticSourceListener . Redigera sedan avsnittet "TelemetryModules" i ApplicationInsights.config-filen .

    <Add Type="Microsoft.ApplicationInsights.DiagnosticSourceListener.DiagnosticSourceTelemetryModule, Microsoft.ApplicationInsights.DiagnosticSourceListener">
      <Sources>
        <Add Name="MyDiagnosticSourceName" />
      </Sources>
    </Add>

För varje diagnostikkälla som du vill spåra lägger du till en post med Name attributet inställt på namnet på din diagnostikkälla.

Använda ETW-händelser

Du kan konfigurera händelsespårning för Windows-händelser (ETW) som ska skickas till Application Insights som spårningar. Installera först NuGet-paketet Microsoft.ApplicationInsights.EtwCollector . Redigera sedan avsnittet "TelemetryModules" i ApplicationInsights.config-filen .

Anteckning

ETW-händelser kan bara samlas in om processen som är värd för SDK:t körs under en identitet som är medlem i användare eller administratörer för prestandaloggar.

    <Add Type="Microsoft.ApplicationInsights.EtwCollector.EtwCollectorTelemetryModule, Microsoft.ApplicationInsights.EtwCollector">
      <Sources>
        <Add ProviderName="MyCompanyEventSourceName" Level="Verbose" />
      </Sources>
    </Add>

För varje källa kan du ange följande parametrar:

  • ProviderName är namnet på den ETW-provider som ska samlas in.
  • ProviderGuid anger GUID för ETW-providern som ska samlas in. Den kan användas i stället för ProviderName.
  • Nivå anger loggningsnivån som ska samlas in. Det kan vara Kritisk, Fel, Information, LogAlways, Utförlig eller Varning.
  • Nyckelord (valfritt) anger heltalsvärdet för nyckelordskombinationer som ska användas.

Använd spårnings-API:et direkt

Du kan anropa Application Insights spårnings-API:et direkt. Loggningskorten använder det här API:et.

Ett exempel:

TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow response - database01");

En fördel med TrackTrace är att du kan placera relativt långa data i meddelandet. Du kan till exempel koda POST-data där.

Du kan också lägga till en allvarlighetsgrad i meddelandet. Precis som med annan telemetri kan du lägga till egenskapsvärden för att filtrera eller söka efter olika uppsättningar spårningar. Ett exempel:

TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow database response",
                            SeverityLevel.Warning,
                            new Dictionary<string, string> { { "database", "db.ID" } });

Nu kan du enkelt filtrera bort i Sök efter alla meddelanden med en viss allvarlighetsgrad som är relaterad till en viss databas.

AzureLogHandler för OpenCensus Python

Med Azure Monitor-logghanteraren kan du exportera Python-loggar till Azure Monitor.

Instrumentera ditt program med OpenCensus Python SDK för Azure Monitor.

Det här exemplet visar hur du skickar en varningsnivålogg till Azure Monitor.

import logging

from opencensus.ext.azure.log_exporter import AzureLogHandler

logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler(connection_string='InstrumentationKey=<your-instrumentation_key-here>'))
logger.warning('Hello, World!')

Utforska dina loggar

Kör appen i felsökningsläge eller distribuera den live.

I appens översiktsfönster i Application Insights-portalen väljer du Sök.

Du kan till exempel:

  • Filtrera på loggspårningar eller på objekt med specifika egenskaper.
  • Granska ett specifikt objekt i detalj.
  • Hitta andra systemloggdata som relaterar till samma användarbegäran (har samma åtgärds-ID).
  • Spara konfigurationen av en sida som en favorit.

Anteckning

Om ditt program skickar mycket data och du använder Application Insights SDK för ASP.NET version 2.0.0-beta3 eller senare, kan funktionen för anpassningsbar sampling fungera och endast skicka en del av telemetrin. Läs mer om sampling.

Felsökning

Få svar på vanliga frågor.

Vad orsakar fördröjd telemetri, ett överbelastat nätverk och ineffektiv överföring?

System.Diagnostics.Tracing har en Autoflush-funktion. Den här funktionen gör att SDK rensas med varje telemetriobjekt, vilket är oönskat, och kan orsaka problem med loggningskort som fördröjd telemetri, ett överbelastat nätverk och ineffektiv överföring.

Hur gör jag för att göra detta för Java?

I kodlös Java-instrumentation, vilket rekommenderas, samlas loggarna in direkt. Använd Java 3.0-agenten.

Application Insights Java-agenten samlar in loggar från Log4j, Logback och java.util.logging direkt.

Varför finns det inget Application Insights-alternativ på projektets snabbmeny?

  • Kontrollera att Developer Analytics Tools är installerat på utvecklingsdatorn. I Visual Studio går du till Verktygstillägg>och Uppdateringar och letar efter Verktyg för utvecklaranalys. Om den inte finns på fliken Installerad öppnar du fliken Online och installerar den.
  • Den här projekttypen kan vara en projekttyp som Utvecklaranalysverktyg inte stöder. Använd manuell installation.

Varför finns det inget alternativ för loggkort i konfigurationsverktyget?

  • Installera loggningsramverket först.
  • Om du använder System.Diagnostics.Trace kontrollerar du att du har konfigurerat det i web.config.
  • Kontrollera att du har den senaste versionen av Application Insights. I Visual Studio går du tillVerktygstillägg> och Uppdateringar och öppnar fliken Uppdateringar. Om Developer Analytics Tools finns där väljer du det för att uppdatera det.

Varför får jag felmeddelandet "Instrumentationsnyckeln kan inte vara tom"?

Du har förmodligen installerat NuGet-paketet för loggningskortet utan att installera Application Insights. I Solution Explorer högerklickar du på ApplicationInsights.configoch väljer Uppdatera Application Insights. Du uppmanas att logga in på Azure och skapa en Application Insights-resurs eller återanvända en befintlig. Det borde åtgärda problemet.

Det kan ta en stund för alla händelser och begäranden att ta sig igenom pipelinen.

Hur mycket data behålls?

Flera faktorer påverkar mängden data som behålls. Mer information finns i avsnittet Gränser på sidan med kundhändelsemått.

Varför ser jag inte några loggposter som jag förväntade mig?

Ditt program kanske skickar stora mängder data och du använder Application Insights SDK för ASP.NET version 2.0.0-beta3 eller senare. I det här fallet kan funktionen för anpassningsbar sampling fungera och endast skicka en del av telemetrin. Läs mer om sampling.

Nästa steg