Prozkoumejte protokoly trasování .NET/.NET Core a Python v Application InsightsExplore .NET/.NET Core and Python trace logs in Application Insights

Odešle protokoly diagnostiky trasování pro vaši aplikaci ASP.NET/ASP.NET Core z ILogger, NLog, log4Net nebo System. Diagnostics. Trace do Azure Application Insights.Send diagnostic tracing logs for your ASP.NET/ASP.NET Core application from ILogger, NLog, log4Net, or System.Diagnostics.Trace to Azure Application Insights. V případě aplikací Pythonu odešlete protokoly diagnostiky trasování pomocí AzureLogHandler v OpenCensus Pythonu pro Azure Monitor.For Python applications, send diagnostic tracing logs using AzureLogHandler in OpenCensus Python for Azure Monitor. Pak je můžete prozkoumat a vyhledat.You can then explore and search them. Tyto protokoly jsou sloučeny s dalšími soubory protokolu z vaší aplikace, takže můžete identifikovat trasování, které jsou spojeny s jednotlivými požadavky uživatelů a korelovat je s jinými událostmi a sestavami výjimek.Those logs are merged with the other log files from your application, so you can identify traces that are associated with each user request and correlate them with other events and exception reports.

Poznámka

Potřebujete modul pro zachycení protokolů?Do you need the log-capture module? Je to užitečný adaptér pro protokolovací nástroje třetích stran.It's a useful adapter for third-party loggers. Pokud však již nepoužíváte NLog, log4Net nebo System. Diagnostics. Trace, zvažte, zda přímo zavoláte Application Insights TrackTrace () .But if you aren't already using NLog, log4Net, or System.Diagnostics.Trace, consider just calling Application Insights TrackTrace() directly.

Instalace protokolování do aplikaceInstall logging on your app

V projektu nainstalujte zvolené protokolovací rozhraní, které by mělo mít za následek zadání v App. config nebo Web. config.Install your chosen logging framework in your project, which should result in an entry in app.config or web.config.

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

Konfigurace Application Insights pro shromažďování protokolůConfigure Application Insights to collect logs

Pokud jste to ještě neudělali, přidejte do projektu Application Insights .Add Application Insights to your project if you haven't done that yet. Zobrazí se možnost zahrnutí kolektoru protokolů.You'll see an option to include the log collector.

Nebo klikněte pravým tlačítkem na projekt v Průzkumník řešení ke konfiguraci Application Insights.Or right-click your project in Solution Explorer to Configure Application Insights. Vyberte možnost Konfigurace kolekce trasování .Select the Configure trace collection option.

Poznámka

Žádná nabídka Application Insights ani možnost kolektoru protokolů?No Application Insights menu or log collector option? Zkuste řešení potíží.Try Troubleshooting.

Ruční instalaceManual installation

Tuto metodu použijte, pokud váš typ projektu není podporován instalačním programem Application Insights (například desktopový projekt systému Windows).Use this method if your project type isn't supported by the Application Insights installer (for example a Windows desktop project).

  1. Pokud máte v úmyslu používat log4Net nebo NLog, nainstalujte ho do svého projektu.If you plan to use log4Net or NLog, install it in your project.

  2. V Průzkumník řešení klikněte pravým tlačítkem myši na projekt a vyberte možnost Spravovat balíčky NuGet.In Solution Explorer, right-click your project, and select Manage NuGet Packages.

  3. Vyhledejte "Application Insights".Search for "Application Insights."

  4. Vyberte jeden z následujících balíčků:Select one of the following packages:

Pokud je to možné, balíček NuGet nainstaluje potřebná sestavení a upraví soubor Web. config nebo App. config.The NuGet package installs the necessary assemblies and modifies web.config or app.config if that's applicable.

ILoggerILogger

Příklady použití implementace Application Insights ILogger s konzolovou aplikací a ASP.NET Core najdete v tématu protokoly ApplicationInsightsLoggerProvider pro .NET Core ILogger.For examples of using the Application Insights ILogger implementation with console applications and ASP.NET Core, see ApplicationInsightsLoggerProvider for .NET Core ILogger logs.

Vložit volání diagnostického protokoluInsert diagnostic log calls

Použijete-li System. Diagnostics. Trace, bude typické volání:If you use System.Diagnostics.Trace, a typical call would be:

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

Pokud dáváte přednost log4net nebo NLog, použijte:If you prefer log4net or NLog, use:

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

Použití událostí EventSourceUse EventSource events

Můžete nakonfigurovat události System. Diagnostics. Tracing. EventSource pro odeslání do Application Insights jako trasování.You can configure System.Diagnostics.Tracing.EventSource events to be sent to Application Insights as traces. Nejdřív nainstalujte Microsoft.ApplicationInsights.EventSourceListener balíček NuGet.First, install the Microsoft.ApplicationInsights.EventSourceListener NuGet package. Pak upravte TelemetryModules oddíl souboru ApplicationInsights. config .Then edit the TelemetryModules section of the ApplicationInsights.config file.

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

Pro každý zdroj můžete nastavit následující parametry:For each source, you can set the following parameters:

  • Název Určuje název EventSource, který se má shromáždit.Name specifies the name of the EventSource to collect.
  • Úroveň určuje úroveň protokolování, která se má shromáždit: kritická, Chyba, informativní, LogAlways, verbosenebo Warning.Level specifies the logging level to collect: Critical, Error, Informational, LogAlways, Verbose, or Warning.
  • Klíčová slova (volitelné) zadejte celočíselnou hodnotu kombinací klíčového slova, které chcete použít.Keywords (optional) specify the integer value of keyword combinations to use.

Použití událostí DiagnosticSourceUse DiagnosticSource events

Můžete nakonfigurovat události System. Diagnostics. DiagnosticSource , které budou odeslány do Application Insights jako trasování.You can configure System.Diagnostics.DiagnosticSource events to be sent to Application Insights as traces. Nejdřív nainstalujte Microsoft.ApplicationInsights.DiagnosticSourceListener balíček NuGet.First, install the Microsoft.ApplicationInsights.DiagnosticSourceListener NuGet package. Pak upravte oddíl "TelemetryModules" v souboru ApplicationInsights. config .Then edit the "TelemetryModules" section of the ApplicationInsights.config file.

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

Pro každý DiagnosticSource, který chcete trasovat, přidejte položku s atributem Name nastaveným na název vaší DiagnosticSource.For each DiagnosticSource you want to trace, add an entry with the Name attribute set to the name of your DiagnosticSource.

Použít události ETWUse ETW events

Můžete nakonfigurovat události trasování událostí pro Windows (ETW), které se mají odeslat Application Insights jako trasování.You can configure Event Tracing for Windows (ETW) events to be sent to Application Insights as traces. Nejdřív nainstalujte Microsoft.ApplicationInsights.EtwCollector balíček NuGet.First, install the Microsoft.ApplicationInsights.EtwCollector NuGet package. Pak upravte oddíl "TelemetryModules" v souboru ApplicationInsights. config .Then edit the "TelemetryModules" section of the ApplicationInsights.config file.

Poznámka

Události ETW se můžou shromažďovat jenom v případě, že se proces, který hostuje sadu SDK, spouští pod identitou, která je členem skupiny Performance Log Users nebo Administrators.ETW events can only be collected if the process that hosts the SDK runs under an identity that's a member of Performance Log Users or Administrators.

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

Pro každý zdroj můžete nastavit následující parametry:For each source, you can set the following parameters:

  • ProviderName je název zprostředkovatele ETW, který se má shromáždit.ProviderName is the name of the ETW provider to collect.
  • ProviderGuid Určuje identifikátor GUID zprostředkovatele ETW, který se má shromáždit.ProviderGuid specifies the GUID of the ETW provider to collect. Dá se použít místo ProviderName .It can be used instead of ProviderName.
  • Level nastaví úroveň protokolování na shromažďovat.Level sets the logging level to collect. Může to být kritická, Chyba, informativní, LogAlways, verbosenebo Warning.It can be Critical, Error, Informational, LogAlways, Verbose, or Warning.
  • Klíčová slova (volitelné) nastavte celočíselnou hodnotu kombinací klíčových slov, která se má použít.Keywords (optional) set the integer value of keyword combinations to use.

Přímé použití rozhraní API trasováníUse the Trace API directly

Rozhraní API pro trasování Application Insights můžete volat přímo.You can call the Application Insights trace API directly. Toto rozhraní API používají adaptéry protokolování.The logging adapters use this API.

Například:For example:

var telemetry = new Microsoft.ApplicationInsights.TelemetryClient();
telemetry.TrackTrace("Slow response - database01");

Výhodou TrackTrace je, že do zprávy můžete ukládat poměrně dlouhá data.An advantage of TrackTrace is that you can put relatively long data in the message. Můžete například zakódovat data POST.For example, you can encode POST data there.

Do zprávy můžete také přidat úroveň závažnosti.You can also add a severity level to your message. A podobně jako u jiné telemetrie můžete přidat hodnoty vlastností, které vám pomohou filtrovat nebo vyhledat různé sady trasování.And, like other telemetry, you can add property values to help filter or search for different sets of traces. Například:For example:

var telemetry = new Microsoft.ApplicationInsights.TelemetryClient();
telemetry.TrackTrace("Slow database response",
               SeverityLevel.Warning,
               new Dictionary<string,string> { {"database", db.ID} });

To vám umožní snadno odfiltrovat ve vyhledávání všechny zprávy určité úrovně závažnosti, které se vztahují k určité databázi.This would enable you to easily filter out in Search all the messages of a particular severity level that relate to a particular database.

AzureLogHandler pro OpenCensus PythonAzureLogHandler for OpenCensus Python

Obslužná rutina protokolu Azure Monitor umožňuje exportovat protokoly Pythonu pro Azure Monitor.The Azure Monitor Log Handler allows you to export Python logs to Azure Monitor.

Instrumentujte svoji aplikaci pomocí sady OpenCensus Python SDK pro Azure monitor.Instrument your application with the OpenCensus Python SDK for Azure Monitor.

V tomto příkladu se dozvíte, jak odeslat Azure Monitor protokolu úrovně upozornění.This example shows how to send a warning level log to 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!')

Prozkoumat protokolyExplore your logs

Spusťte aplikaci v režimu ladění nebo ji nasaďte živě.Run your app in debug mode or deploy it live.

V podokně Přehled vaší aplikace na portálu Application Insightsvyberte Hledat.In your app's overview pane in the Application Insights portal, select Search.

Můžete například:You can, for example:

  • Filtrování trasování protokolů nebo položek s konkrétními vlastnostmiFilter on log traces or on items with specific properties.
  • Podrobně zkontrolujte konkrétní položku.Inspect a specific item in detail.
  • Najde další data systémového protokolu, která se vztahují ke stejnému požadavku uživatele (má stejné OperationId).Find other system log data that relates to the same user request (has the same OperationId).
  • Uložte konfiguraci stránky jako oblíbenou.Save the configuration of a page as a favorite.

Poznámka

Pokud vaše aplikace odesílá spoustu dat a používáte sadu SDK Application Insights pro ASP.NET verze 2.0.0-beta3 nebo novější, může funkce adaptivního vzorkování fungovat a odesílat jenom část telemetrie.If your application sends a lot of data and you're using the Application Insights SDK for ASP.NET version 2.0.0-beta3 or later, the adaptive sampling feature may operate and send only a portion of your telemetry. Další informace o vzorkování.Learn more about sampling.

Řešení potížíTroubleshooting

Návody to udělat pro Java?How do I do this for Java?

V případě instrumentace bez kódu Java (doporučeno) protokoly se shromažďují mimo pole, použijte agenta Java 3,0.In Java codeless instrumentation (recommended) the logs are collected out of the box, use Java 3.0 agent.

Pokud používáte sadu Java SDK, použijte adaptéry protokolu Java.If you are using the Java SDK, use the Java log adapters.

V místní nabídce projektu není žádná možnost Application InsightsThere's no Application Insights option on the project context menu

  • Ujistěte se, že je ve vývojovém počítači nainstalován Developer Analytics Tools.Make sure that Developer Analytics Tools is installed on the development machine. V Tools > rozšířeních a aktualizacíchnástrojů sady Visual Studio vyhledejte Developer Analytics Tools.At Visual Studio Tools > Extensions and Updates, look for Developer Analytics Tools. Pokud není na kartě nainstalované , otevřete online kartu a nainstalujte ji.If it isn't on the Installed tab, open the Online tab and install it.
  • Může to být typ projektu, který Developer Analytics Tools nepodporuje.This might be a project type that Developer Analytics Tools doesn't support. Použijte ruční instalaci.Use manual installation.

V konfiguračním nástroji není žádná možnost adaptéru protokolu.There's no log adapter option in the configuration tool

  • Nejdřív nainstalujte rozhraní protokolování.Install the logging framework first.
  • Pokud používáte System. Diagnostics. Trace, ujistěte se, že je v souboru Web. confignakonfigurován.If you're using System.Diagnostics.Trace, make sure that you have it configured in web.config.
  • Ujistěte se, že máte nejnovější verzi Application Insights.Make sure that you have the latest version of Application Insights. V aplikaci Visual Studio, přejít na nástroje > rozšíření a aktualizacea otevřete kartu aktualizace . Pokud tam Developer Analytics Tools , vyberte ho a aktualizujte ho.In Visual Studio, go to Tools > Extensions and Updates, and open the Updates tab. If Developer Analytics Tools is there, select it to update it.

Zobrazí se chybová zpráva "klíč instrumentace nemůže být prázdný"I get the "Instrumentation key cannot be empty" error message

Pravděpodobně jste nainstalovali balíček NuGet pro protokolovací adaptér bez instalace Application Insights.You probably installed the logging adapter Nuget package without installing Application Insights. V Průzkumník řešení klikněte pravým tlačítkem na ApplicationInsights. configa vyberte aktualizovat Application Insights.In Solution Explorer, right-click ApplicationInsights.config, and select Update Application Insights. Zobrazí se výzva, abyste se přihlásili k Azure a vytvořili prostředek Application Insights nebo znovu použijete existující.You'll be prompted to sign in to Azure and create an Application Insights resource or reuse an existing one. To by mělo problém vyřešit.That should fix the problem.

Může chvíli trvat, než se všechny události a požadavky dostanou přes kanál.It can take a while for all the events and requests to get through the pipeline.

Kolik dat se zachová?How much data is retained?

Množství dat, která jsou zachována, má vliv na několik faktorů.Several factors affect the amount of data that's retained. Další informace najdete v části omezení na stránce metriky událostí zákazníka.For more information, see the limits section of the customer event metrics page.

Nevidím některé položky protokolu, které jsem očekávalI don't see some log entries that I expected

Pokud vaše aplikace odesílá voluminous množství dat a používáte sadu SDK Application Insights pro ASP.NET verze 2.0.0-beta3 nebo novější, může funkce adaptivního vzorkování fungovat a odesílat pouze část telemetrie.If your application sends voluminous amounts of data and you're using the Application Insights SDK for ASP.NET version 2.0.0-beta3 or later, the adaptive sampling feature may operate and send only a portion of your telemetry. Další informace o vzorkování.Learn more about sampling.

Další krokyNext steps