Explorar os logs de rastreamento do .NET/.NET Core e do Python no Application InsightsExplore .NET/.NET Core and Python trace logs in Application Insights

Envie logs de rastreamento de diagnóstico referentes ao seu aplicativo ASP.NET/ASP.NET Core do ILogger, NLog, log4Net ou System.Diagnostics.Trace para o 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. Para aplicativos em Python, envie logs de rastreamento de diagnóstico usando o AzureLogHandler em OpenCensus Python para o Azure Monitor.For Python applications, send diagnostic tracing logs using AzureLogHandler in OpenCensus Python for Azure Monitor. Em seguida, você pode explorá-los e pesquisá-los.You can then explore and search them. Esses logs são mesclados a outros arquivos de log do seu aplicativo, de modo que você pode identificar os rastreamentos associados a cada solicitação de usuário e correlacioná-los com outros relatórios de eventos e exceções.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.

Observação

Você precisa do módulo de captura de log?Do you need the log-capture module? Ele é um adaptador útil para agentes de terceiros.It's a useful adapter for third-party loggers. No entanto, se você ainda não usa o NLog, o log4Net nem o System.Diagnostics.Trace, convém chamar apenas o Application Insights TrackTrace() diretamente.But if you aren't already using NLog, log4Net, or System.Diagnostics.Trace, consider just calling Application Insights TrackTrace() directly.

Instalar o log no seu aplicativoInstall logging on your app

Instale sua estrutura de registros escolhida em seu projeto, o que deve resultar em uma entrada em app.config ou 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>

Configurar o Application Insights para coletar logsConfigure Application Insights to collect logs

Adicione o Application Insights ao seu projeto se ainda não tiver feito isso.Add Application Insights to your project if you haven't done that yet. Você verá uma opção para incluir o coletor de logs.You'll see an option to include the log collector.

Ou então, clique com o botão direito do mouse no seu projeto no Gerenciador de Soluções para Configurar o Application Insights.Or right-click your project in Solution Explorer to Configure Application Insights. Selecione a opção Configurar a coleta de rastreamento.Select the Configure trace collection option.

Observação

Não consegue ver o menu do Application Insights nem a opção de coletor de logs?No Application Insights menu or log collector option? Experimente Solucionar problemas.Try Troubleshooting.

Instalação manualManual installation

Use este método se o tipo de projeto não tiver suporte no instalador do Application Insights (por exemplo, um projeto de Área de Trabalho do Windows).Use this method if your project type isn't supported by the Application Insights installer (for example a Windows desktop project).

  1. Se você planeja usar o log4Net ou NLog, instale-o em seu projeto.If you plan to use log4Net or NLog, install it in your project.

  2. No Gerenciador de Soluções, clique com o botão direito do mouse no projeto e selecione Gerenciar Pacotes NuGet.In Solution Explorer, right-click your project, and select Manage NuGet Packages.

  3. Pesquise por "Application Insights".Search for "Application Insights."

  4. Selecione um dos seguintes pacotes:Select one of the following packages:

O pacote NuGet instala os assemblies necessários e, quando aplicável, modifica o web.config ou o app.config.The NuGet package installs the necessary assemblies and modifies web.config or app.config if that's applicable.

ILoggerILogger

Para obter exemplos de como usar a implementação de ILogger do Application Insights com aplicativos Console e ASP.NET Core, confira ApplicationInsightsLoggerProvider para logs do ILogger do .NET Core.For examples of using the Application Insights ILogger implementation with console applications and ASP.NET Core, see ApplicationInsightsLoggerProvider for .NET Core ILogger logs.

Inserir chamadas de log de diagnósticoInsert diagnostic log calls

Se você usa System.Diagnostics.Trace, uma chamada típica é semelhante a:If you use System.Diagnostics.Trace, a typical call would be:

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

Se você preferir log4net ou NLog, use:If you prefer log4net or NLog, use:

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

Usar eventos EventSourceUse EventSource events

É possível configurar eventos System.Diagnostics.Tracing.EventSource para que eles sejam enviados para o Application Insights como rastreamentos.You can configure System.Diagnostics.Tracing.EventSource events to be sent to Application Insights as traces. Primeiro, instale o pacote NuGet Microsoft.ApplicationInsights.EventSourceListener.First, install the Microsoft.ApplicationInsights.EventSourceListener NuGet package. Depois, edite a seção TelemetryModules do arquivo 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>

Para cada fonte, você pode definir os seguintes parâmetros:For each source, you can set the following parameters:

  • Nome especifica o nome do EventSource a ser coletado.Name specifies the name of the EventSource to collect.
  • Nível especifica o nível de registros em log a ser coletado: Crítico, Erro, Informativo, LogAlways, Detalhado ou Aviso.Level specifies the logging level to collect: Critical, Error, Informational, LogAlways, Verbose, or Warning.
  • Palavras-chave (opcional) especificam o valor inteiro das combinações de palavras-chave a serem usadas.Keywords (optional) specify the integer value of keyword combinations to use.

Usar eventos DiagnosticSourceUse DiagnosticSource events

É possível configurar eventos System.Diagnostics.DiagnosticSource para que eles sejam enviados para o Application Insights como rastreamentos.You can configure System.Diagnostics.DiagnosticSource events to be sent to Application Insights as traces. Primeiro, instale o pacote NuGet Microsoft.ApplicationInsights.DiagnosticSourceListener.First, install the Microsoft.ApplicationInsights.DiagnosticSourceListener NuGet package. Em seguida, edite a seção "TelemetryModules" do arquivo 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>

Para cada DiagnosticSource que você deseja rastrear, adicione uma entrada com o atributo Nome definido como o nome do seu DiagnosticSource.For each DiagnosticSource you want to trace, add an entry with the Name attribute set to the name of your DiagnosticSource.

Usar eventos ETWUse ETW events

É possível configurar os eventos ETW (Rastreamento de Eventos para Windows) a serem enviados ao Application Insights como rastreamentos.You can configure Event Tracing for Windows (ETW) events to be sent to Application Insights as traces. Primeiro, instale o pacote NuGet Microsoft.ApplicationInsights.EtwCollector.First, install the Microsoft.ApplicationInsights.EtwCollector NuGet package. Em seguida, edite a seção "TelemetryModules" do arquivo ApplicationInsights.config.Then edit the "TelemetryModules" section of the ApplicationInsights.config file.

Observação

Eventos ETW só poderão ser coletados se o processo que hospeda o SDK estiver em execução em uma identidade que seja membro dos administradores ou usuários de log de desempenho.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>

Para cada fonte, você pode definir os seguintes parâmetros:For each source, you can set the following parameters:

  • ProviderName é o nome do provedor de ETW a ser coletado.ProviderName is the name of the ETW provider to collect.
  • ProviderGuid especifica o GUID do provedor de ETW a ser coletado.ProviderGuid specifies the GUID of the ETW provider to collect. Ele poderá ser usado em lugar de ProviderName.It can be used instead of ProviderName.
  • Nível define o nível de registros em log a ser coletado.Level sets the logging level to collect. Ele pode ser Crítico, Erro, Informativo, LogAlways, Detalhado ou Aviso.It can be Critical, Error, Informational, LogAlways, Verbose, or Warning.
  • Palavras-chave (opcional) definem o valor inteiro das combinações de palavras-chave a serem usadas.Keywords (optional) set the integer value of keyword combinations to use.

Usar a API de rastreamento diretamenteUse the Trace API directly

Você pode chamar a API de rastreamento do Application Insights diretamente.You can call the Application Insights trace API directly. Os adaptadores de log usam essa API.The logging adapters use this API.

Por exemplo:For example:

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

Uma vantagem de TrackTrace é que você pode colocar dados relativamente compridos na mensagem.An advantage of TrackTrace is that you can put relatively long data in the message. Por exemplo, você pode codificar dados POST.For example, you can encode POST data there.

Você também pode adicionar um nível de severidade à mensagem.You can also add a severity level to your message. E, como ocorre com outros casos de telemetria, você pode adicionar valores de propriedade para ajudar a filtrar ou a pesquisar diferentes conjuntos de rastreamentos.And, like other telemetry, you can add property values to help filter or search for different sets of traces. Por exemplo:For example:

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

Isso permite que você filtre facilmente, em Pesquisa, todas as mensagens de um nível de severidade específico relacionadas a um determinado banco de dados.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 para OpenCensus PythonAzureLogHandler for OpenCensus Python

O Manipulador de Log do Azure Monitor permite exportar logs do Python para o Azure Monitor.The Azure Monitor Log Handler allows you to export Python logs to Azure Monitor.

Instrumente o aplicativo com o SDK do OpenCensus Python para o Azure Monitor.Instrument your application with the OpenCensus Python SDK for Azure Monitor.

Este exemplo mostra como enviar um log de nível de aviso para Azure Monitor.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!')

Explorar seus logsExplore your logs

Execute o aplicativo no modo de depuração ou implante-o em tempo real.Run your app in debug mode or deploy it live.

No painel de visão geral do aplicativo, no portal do Application Insights, escolha Pesquisa.In your app's overview pane in the Application Insights portal, select Search.

Por exemplo, você pode:You can, for example:

  • Filtre rastreamentos de log ou itens com propriedades específicas.Filter on log traces or on items with specific properties.
  • Inspecionar um item específico em detalhes.Inspect a specific item in detail.
  • Encontre outros dados de log do sistema relacionados à mesma solicitação de usuário (tem a mesma OperationId).Find other system log data that relates to the same user request (has the same OperationId).
  • Salve a configuração de uma página como um favorito.Save the configuration of a page as a favorite.

Observação

Se o aplicativo enviar muitos dados e se você estiver usando o SDK do Application Insights para o ASP.NET versão 2.0.0-beta3 ou posterior, o recurso de amostragem adaptável poderá operar e enviar apenas uma parte de sua telemetria.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. Saiba mais sobre amostragem.Learn more about sampling.

Solução de problemasTroubleshooting

Como faço isso no Java?How do I do this for Java?

Em instrumentação sem código Java (recomendado), os logs são coletados prontos para o uso. Use o agente do Java 3.0.In Java codeless instrumentation (recommended) the logs are collected out of the box, use Java 3.0 agent.

Se você estiver usando o SDK do Java, use os adaptadores de log Java.If you are using the Java SDK, use the Java log adapters.

Não há nenhuma opção do Application Insights no menu de contexto do projetoThere's no Application Insights option on the project context menu

  • Verifique se o Developer Analytics Tools está instalado no computador de desenvolvimento.Make sure that Developer Analytics Tools is installed on the development machine. Em Ferramentas > Extensões e Atualizações no Visual Studio, procure o Developer Analytics Tools.At Visual Studio Tools > Extensions and Updates, look for Developer Analytics Tools. Se ele não estiver na aba Instalado, abra a guia Online e instale-o.If it isn't on the Installed tab, open the Online tab and install it.
  • Esse pode ser um tipo de projeto não compatível com o Developer Analytics Tools.This might be a project type that Developer Analytics Tools doesn't support. Use a instalação manual.Use manual installation.

Não há nenhuma opção de adaptador de log na ferramenta de configuraçãoThere's no log adapter option in the configuration tool

  • Instale primeiro a estrutura de registros.Install the logging framework first.
  • Se estiver usando System.Diagnostics.Trace, verifique se você o configurou no web.config.If you're using System.Diagnostics.Trace, make sure that you have it configured in web.config.
  • Verifique se você tem a versão mais recente do Application Insights.Make sure that you have the latest version of Application Insights. No Visual Studio, acesse Ferramentas > Extensões e Atualizações e abra a guia Atualizações. Se o Developer Analytics Tools estiver presente, selecione-o para atualizá-lo.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.

Recebo a mensagem de erro "A chave de instrumentação não pode estar vazia"I get the "Instrumentation key cannot be empty" error message

Você provavelmente instalou o pacote NuGet de adaptador de log sem instalar o Application Insights.You probably installed the logging adapter Nuget package without installing Application Insights. No Gerenciador de Soluções, clique com o botão direito do mouse em ApplicationInsights.config e selecione Atualizar Application Insights.In Solution Explorer, right-click ApplicationInsights.config, and select Update Application Insights. Você receberá uma solicitação para entrar no Azure e criar um recurso do Application Insights ou, alternativamente, reutilizar um recurso existente.You'll be prompted to sign in to Azure and create an Application Insights resource or reuse an existing one. Isso deve corrigir o problema.That should fix the problem.

Pode levar algum tempo para que todos os eventos e solicitações percorram o pipeline.It can take a while for all the events and requests to get through the pipeline.

Que quantidade de dados é mantida?How much data is retained?

Vários fatores afetam a quantidade dos dados retidos.Several factors affect the amount of data that's retained. Para obter mais informações, confira a seção de limites da página de métricas de eventos do cliente.For more information, see the limits section of the customer event metrics page.

Não vejo algumas entradas de log que eu esperavaI don't see some log entries that I expected

Se o aplicativo enviar um volume muito grande de dados e se você estiver usando o SDK do Application Insights para o ASP.NET versão 2.0.0-beta3 ou posterior, o recurso de amostragem adaptável poderá operar e enviar apenas uma parte de sua telemetria.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. Saiba mais sobre amostragem.Learn more about sampling.

Próximas etapasNext steps