Share via


Traceerlogboeken van .NET/.NET Core en Python in Application Insights

Verzend diagnostische traceringslogboeken voor uw ASP.NET/ASP.NET Core-toepassing vanuit ILogger, NLog, log4Net of System.Diagnostics.Trace naar Azure-toepassing Insights. Voor Python-toepassingen verzendt u logboeken voor diagnostische tracering met behulp van AzureLogHandler in OpenCensus Python voor Azure Monitor. Vervolgens kunt u ze verkennen en zoeken. Deze logboeken worden samengevoegd met de andere logboekbestanden uit uw toepassing. U kunt ze gebruiken om traceringen te identificeren die zijn gekoppeld aan elke gebruikersaanvraag en deze te correleren met andere gebeurtenissen en uitzonderingsrapporten.

Notitie

Hebt u de log-capture-module nodig? Het is een handige adapter voor logboekregistraties van derden. Maar als u nog geen NLog, log4Net of System.Diagnostics.Trace gebruikt, kunt u Application Insights TrackTrace() rechtstreeks aanroepen.

Notitie

Op 31 maart 2025 eindigt de ondersteuning voor opname van instrumentatiesleutels. Opname van instrumentatiesleutels blijft werken, maar we bieden geen updates of ondersteuning meer voor de functie. Overgang naar verbindingsreeks s om te profiteren van nieuwe mogelijkheden.

Logboekregistratie installeren in uw app

Installeer het gekozen framework voor logboekregistratie in uw project. Dit moet resulteren in een vermelding in app.config of web.config.

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

Application Insights configureren voor het verzamelen van logboeken

Voeg Application Insights toe aan uw project als u dat nog niet hebt gedaan en er een optie is om de logboekverzamelaar op te nemen.

Of klik met de rechtermuisknop op uw project in Solution Explorer om Application Insights te configureren. Selecteer de optie Traceringsverzameling configureren.

Notitie

Geen menu- of logboekverzamelaaroptie van Application Insights? Probeer het probleem op te lossen.

Handmatige installatie

Gebruik deze methode als uw projecttype niet wordt ondersteund door het Application Insights-installatieprogramma. Als het bijvoorbeeld een Windows-bureaubladproject is.

  1. Als u van plan bent om log4net of NLog te gebruiken, installeert u het in uw project.

  2. Klik in Solution Explorer met de rechtermuisknop op uw project en selecteer NuGet-pakketten beheren.

  3. Zoek naar Application Insights.

  4. Selecteer een van de volgende pakketten:

Het NuGet-pakket installeert de benodigde assembly's en wijzigt web.config of app.config indien van toepassing.

ILogger

Zie ApplicationInsightsLoggerProvider voor .NET Core ILogger-logboeken voor voorbeelden van het gebruik van de Application Insights ILogger-implementatie met consoletoepassingen en ASP.NET Core.

Diagnostische logboekoproepen invoegen

Als u System.Diagnostics.Trace gebruikt, is een typische aanroep:

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

Als u liever log4net of NLog gebruikt, gebruikt u:

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

EventSource-gebeurtenissen gebruiken

U kunt System.Diagnostics.Tracing.EventSource-gebeurtenissen zo configureren dat ze als traceringen naar Application Insights worden verzonden. Installeer eerst het Microsoft.ApplicationInsights.EventSourceListener NuGet-pakket. Bewerk vervolgens de TelemetryModules sectie van het ApplicationInsights.config-bestand .

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

Voor elke bron kunt u de volgende parameters instellen:

  • Naam geeft de naam op van de EventSource die moet worden verzameld.
  • Niveau geeft het registratieniveau op dat moet worden verzameld: Kritiek, Fout, Informatief, LogAlways, Uitgebreid of Waarschuwing.
  • Trefwoorden (optioneel) geven de geheel getalwaarde van trefwoordcombinaties op die moeten worden gebruikt.

Diagnostische bron-gebeurtenissen gebruiken

U kunt system.Diagnostics.DiagnosticSource-gebeurtenissen zo configureren dat ze als traceringen naar Application Insights worden verzonden. Installeer eerst het Microsoft.ApplicationInsights.DiagnosticSourceListener NuGet-pakket. Bewerk vervolgens de sectie TelemetryModules van het ApplicationInsights.config-bestand .

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

Voeg voor elke diagnostische bron die u wilt traceren een vermelding toe met het Name kenmerk dat is ingesteld op de naam van uw diagnostische bron.

ETW-gebeurtenissen gebruiken

U kunt gebeurtenistracering configureren voor Windows-gebeurtenissen (ETW) die als traceringen naar Application Insights worden verzonden. Installeer eerst het Microsoft.ApplicationInsights.EtwCollector NuGet-pakket. Bewerk vervolgens de sectie TelemetryModules van het ApplicationInsights.config-bestand .

Notitie

ETW-gebeurtenissen kunnen alleen worden verzameld als het proces dat als host fungeert voor de SDK wordt uitgevoerd onder een identiteit die lid is van gebruikers of beheerders van prestatielogboeken.

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

Voor elke bron kunt u de volgende parameters instellen:

  • ProviderName is de naam van de ETW-provider die moet worden verzameld.
  • ProviderGuid geeft de GUID van de ETW-provider op die moet worden verzameld. Het kan worden gebruikt in plaats van ProviderName.
  • Met niveau stelt u het logboekregistratieniveau in dat moet worden verzameld. Het kan kritiek, fout, informatief, logalways, uitgebreid of waarschuwing zijn.
  • Trefwoorden (optioneel) stellen de gehele waarde van trefwoordcombinaties in die moeten worden gebruikt.

De tracerings-API rechtstreeks gebruiken

U kunt de Application Insights-tracerings-API rechtstreeks aanroepen. De logboekregistratieadapters gebruiken deze API.

Voorbeeld:

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

Een voordeel hiervan TrackTrace is dat u relatief lange gegevens in het bericht kunt plaatsen. U kunt bijvoorbeeld POST-gegevens daar coderen.

U kunt ook een ernstniveau toevoegen aan uw bericht. En net als andere telemetrie kunt u eigenschapswaarden toevoegen om verschillende sets traceringen te filteren of te zoeken. Voorbeeld:

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

U kunt nu eenvoudig filteren in Transaction Search alle berichten van een bepaald ernstniveau die betrekking hebben op een bepaalde database.

AzureLogHandler voor OpenCensus Python

Met de Azure Monitor-logboekhandler kunt u Python-logboeken exporteren naar Azure Monitor.

Instrumenteer uw toepassing met de OpenCensus Python SDK voor Azure Monitor.

In dit voorbeeld ziet u hoe u een logboek met waarschuwingsniveau naar Azure Monitor verzendt.

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!')

Uw logboeken verkennen

Voer uw app uit in de foutopsporingsmodus of implementeer deze live.

Selecteer Transactie zoeken in het overzichtsvenster van uw app in de Application Insights-portal.

U kunt bijvoorbeeld:

  • Filter op logboektraceringen of op items met specifieke eigenschappen.
  • Inspecteer een specifiek item in detail.
  • Zoek andere systeemlogboekgegevens die betrekking hebben op dezelfde gebruikersaanvraag (heeft dezelfde bewerkings-id).
  • Sla de configuratie van een pagina op als favoriet.

Notitie

Als uw toepassing veel gegevens verzendt en u de Application Insights SDK gebruikt voor ASP.NET versie 2.0.0-beta3 of hoger, werkt de functie voor adaptieve steekproeven mogelijk alleen en verzendt deze slechts een deel van uw telemetrie. Meer informatie over steekproeven.

Probleemoplossing

Zoek antwoorden op veelgestelde vragen.

Wat veroorzaakt vertraagde telemetrie, een overbelast netwerk en inefficiënte overdracht?

System.Diagnostics.Tracing heeft een autoflush-functie. Deze functie zorgt ervoor dat SDK wordt leeggemaakt met elk telemetrie-item, wat ongewenst is en kan leiden tot problemen met logboekregistratieadapters, zoals vertraagde telemetrie, een overbelast netwerk en inefficiënte overdracht.

Hoe kan ik dit doen voor Java?

In Java-instrumentatie zonder code, die wordt aanbevolen, worden de logboeken standaard verzameld. Gebruik de Java 3.0-agent.

De Java-agent van Application Insights verzamelt logboeken van Log4j, Logback en java.util.logging out of the box.

Waarom is er geen Application Insights-optie in het contextmenu van het project?

  • Zorg ervoor dat Developer Analytics Tools is geïnstalleerd op de ontwikkelcomputer. Ga in Visual Studio naar Tools>Extensions and Updates en zoek naar Developer Analytics Tools. Als dit niet op het tabblad Geïnstalleerd staat, opent u het tabblad Online en installeert u het.
  • Dit projecttype kan een projecttype zijn dat Developer Analytics Tools niet ondersteunt. Gebruik handmatige installatie.

Waarom is er geen optie voor de logboekadapter in het configuratieprogramma?

  • Installeer eerst het framework voor logboekregistratie.
  • Als u System.Diagnostics.Trace gebruikt, controleert u of u deze hebt geconfigureerd in web.config.
  • Zorg ervoor dat u de nieuwste versie van Application Insights hebt. Ga in Visual Studio naar Extra-extensies>en updates en open het tabblad Updates. Als Developer Analytics Tools er is, selecteert u deze om deze bij te werken.

Waarom krijg ik het foutbericht 'Instrumentatiesleutel mag niet leeg zijn'?

U hebt waarschijnlijk het NuGet-pakket voor logboekregistratieadapter geïnstalleerd zonder Application Insights te installeren. Klik in Solution Explorer met de rechtermuisknop op ApplicationInsights.config en selecteer Application Insights bijwerken. U wordt gevraagd u aan te melden bij Azure en een Application Insights-resource te maken of een bestaande resource opnieuw te gebruiken. Het probleem moet worden opgelost.

Het kan even duren voordat alle gebeurtenissen en aanvragen de pijplijn doorlopen.

Hoeveel gegevens worden bewaard?

Verschillende factoren zijn van invloed op de hoeveelheid gegevens die wordt bewaard. Zie de sectie Limieten van de pagina met metrische gegevens van klantevenementen voor meer informatie.

Waarom zie ik geen logboekvermeldingen die ik had verwacht?

Mogelijk verzendt uw toepassing volumineuze hoeveelheden gegevens en gebruikt u de Application Insights SDK voor ASP.NET versie 2.0.0-beta3 of hoger. In dit geval kan de functie voor adaptieve steekproeven werken en slechts een deel van uw telemetrie verzenden. Meer informatie over steekproeven.

Volgende stappen