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.
Kommentar
Behöver du modulen log-capture? 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.
Kommentar
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äng 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 och det finns 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.
Kommentar
Finns det ingen Application Insights-meny eller ett alternativ för logginsamlare? 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.
Om du planerar att använda log4net eller NLog installerar du det i projektet.
Högerklicka på projektet i Solution Explorer och välj Hantera NuGet-paket.
Sök efter Application Insights.
Välj något av följande paket:
- ILogger: Microsoft.Extensions.Logging.ApplicationInsights
- NLog: Microsoft.ApplicationInsights.NLogTarget
- log4net: Microsoft.ApplicationInsights.Log4NetAppender
- System.Diagnostics: Microsoft.ApplicationInsights.TraceListener
- Microsoft.ApplicationInsights.DiagnosticSourceListener
- Microsoft.ApplicationInsights.EtwCollector
- Microsoft.ApplicationInsights.EventSourceListener
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 vanligt 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. Microsoft.ApplicationInsights.EventSourceListener
Installera först NuGet-paketet. 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. Microsoft.ApplicationInsights.DiagnosticSourceListener
Installera först NuGet-paketet. Redigera sedan avsnittet "TelemetryModules" i filen ApplicationInsights.config .
<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å diagnostikkällan.
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. Microsoft.ApplicationInsights.EtwCollector
Installera först NuGet-paketet. Redigera sedan avsnittet "TelemetryModules" i filen ApplicationInsights.config .
Kommentar
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.
Till exempel:
TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow response - database01");
En fördel TrackTrace
med ä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. Och precis som andra telemetrier kan du lägga till egenskapsvärden för att filtrera eller söka efter olika uppsättningar spårningar. Till 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 alla meddelanden på en viss allvarlighetsnivå som är relaterade till en viss databas i Transaktionssökning .
AzureLogHandler för OpenCensus Python
Med Azure Monitor Log Handler 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 loggarna
Kör appen i felsökningsläge eller distribuera den live.
I appens översiktsfönster i Application Insights-portalen väljer du Transaktionssökning.
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.
Kommentar
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å projektkontextmenyn?
- 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 loggkortsalternativ 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 till Verktygstillä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 får inte vara tom"?
Du har förmodligen installerat nuGet-paketet för loggningskortet utan att installera Application Insights. Högerklicka på ApplicationInsights.config i Solution Explorer och välj Uppdatera Application Insights. Du uppmanas att logga in på Azure och skapa en Application Insights-resurs eller återanvända en befintlig resurs. Det bör åtgärda problemet.
Varför kan jag se spårningar men inte andra händelser i diagnostiksökningen?
Det kan ta ett tag innan alla händelser och begäranden kommer 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 för 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.