Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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. Para aplicativos do Python, envie logs de rastreamento de diagnóstico usando o AzureLogHandler no OpenCensus Python para o Azure Monitor. Em seguida, você pode explorá-los e pesquisá-los. Esses logs são mesclados com outros arquivos de log de seu aplicativo. Você pode usá-los para identificar rastreamentos associados a cada solicitação do usuário e correlacioná-los com outros eventos e relatórios de exceção.
Observação
Você precisa do módulo de captura de log? Ele é um adaptador útil para agentes de terceiros. No entanto, se você ainda não estiver usando NLog, log4Net ou System.Diagnostics.Trace, considere chamar o Application Insights TrackTrace() diretamente.
Observação
O suporte à ingestão de chave de instrumentação será encerrado em 31 de março de 2025. A ingestão de chave de instrumentação continuará funcionando, mas não forneceremos mais atualizações ou suporte para o recurso. Faça a transição para cadeias de conexão para aproveitar os novos recursos.
Instalar o log no seu aplicativo
Instale a estrutura de log escolhida em seu projeto, o que deve resultar em uma entrada em app.config ou 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 logs
Adicione o Application Insights ao seu projeto se você ainda não fez isso e há uma opção para incluir o coletor de logs.
Ou clique com o botão direito do mouse no projeto no Gerenciador de Soluções para configurar o Application Insights. Selecione a opção Configurar coleção de rastreamento .
Observação
Não consegue ver o menu do Application Insights nem a opção de coletor de logs? Tente solucionar problemas.
Instalação manual
Use este método se o tipo de projeto não tiver suporte no instalador do Application Insights. Por exemplo, se for um projeto da área de trabalho do Windows.
Se você pretende usar o log4net ou NLog, instale-o em seu projeto.
No Gerenciador de Soluções, clique com o botão direito do mouse em seu projeto e selecione Gerenciar Pacotes NuGet.
Busque por Application Insights.
Selecione um dos seguintes pacotes:
- 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
- ILogger: Microsoft.Extensions.Logging.ApplicationInsights
O pacote NuGet instala os assemblies necessários e, quando aplicável, modifica o web.config ou o app.config.
ILogger
Para obter exemplos de como usar a implementação do ILogger do Application Insights com aplicativos de console e ASP.NET Core, consulte ApplicationInsightsLoggerProvider para logs do ILogger do .NET Core.
Inserir chamadas de log de diagnóstico
Se você usa System.Diagnostics.Trace, uma chamada típica é semelhante a:
System.Diagnostics.Trace.TraceWarning("Slow response - database01");
Se você preferir log4net ou NLog, use:
logger.Warn("Slow response - database01");
Usar eventos EventSource
Você pode configurar eventos System.Diagnostics.Tracing.EventSource para serem enviados ao Application Insights como rastreamentos. Primeiro, instale o pacote NuGet Microsoft.ApplicationInsights.EventSourceListener
. Em seguida, edite a TelemetryModules
seção do arquivo ApplicationInsights.config .
<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:
- O nome especifica o nome do EventSource a ser coletado.
- Nível especifica o nível de log a coletar: Crítico, Erro, Informativo, LogAlways, Verbose ou Aviso.
- Palavras-chave (opcional) especificam o valor inteiro das combinações de palavras-chave a serem usadas.
Usar eventos DiagnosticSource
Você pode configurar eventos System.Diagnostics.DiagnosticSource para serem enviados ao Application Insights como rastreamentos. Primeiro, instale o pacote NuGet Microsoft.ApplicationInsights.DiagnosticSourceListener
. Em seguida, edite a seção "TelemetryModules" do arquivo ApplicationInsights.config .
<Add Type="Microsoft.ApplicationInsights.DiagnosticSourceListener.DiagnosticSourceTelemetryModule, Microsoft.ApplicationInsights.DiagnosticSourceListener">
<Sources>
<Add Name="MyDiagnosticSourceName" />
</Sources>
</Add>
Para cada origem de diagnóstico que você deseja rastrear, adicione uma entrada com o conjunto de atributos Name
para definir o nome de sua origem de diagnóstico.
Usar eventos ETW
É possível configurar os eventos ETW (Rastreamento de Eventos para Windows) a serem enviados ao Application Insights como rastreamentos. Primeiro, instale o pacote NuGet Microsoft.ApplicationInsights.EtwCollector
. Em seguida, edite a seção "TelemetryModules" do arquivo ApplicationInsights.config .
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.
<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:
- ProviderName é o nome do provedor ETW a ser coletado.
- ProviderGuid especifica o GUID do provedor de ETW a ser coletado. Ele poderá ser usado em lugar de
ProviderName
. - Nível define o nível de registros em log a ser coletado. Ele pode ser Crítico, Erro, Informativo, LogAlways, Detalhado ou Aviso.
- Palavras-chave (opcional) definem o valor inteiro das combinações de palavras-chave a serem usadas.
Usar a API de rastreamento diretamente
Você pode chamar a API de rastreamento do Application Insights diretamente. Os adaptadores de log usam essa API.
Por exemplo:
TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow response - database01");
Uma vantagem de TrackTrace
é que você pode colocar dados relativamente compridos na mensagem. Por exemplo, você pode codificar dados POST.
Você também pode adicionar um nível de severidade à mensagem. 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. Por exemplo:
TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow database response",
SeverityLevel.Warning,
new Dictionary<string, string> { { "database", "db.ID" } });
Agora você pode filtrar facilmente na Pesquisa de Transações todas as mensagens de um nível de severidade específico relacionado a um banco de dados específico.
AzureLogHandler para OpenCensus Python
O Manipulador de Log do Azure Monitor permite exportar logs do Python para o Azure Monitor.
Instrumente seu aplicativo com o SDK do OpenCensus Python para Azure Monitor.
Este exemplo mostra como enviar um log de nível de aviso para 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 logs
Execute o aplicativo no modo de depuração ou implante-o em tempo real.
No painel de visão geral do aplicativo no portal do Application Insights, selecione Pesquisa de Transações.
Por exemplo, você pode:
- Filtre rastreamentos de log ou itens com propriedades específicas.
- Inspecionar um item específico em detalhes.
- Encontre outros dados de log do sistema relacionados à mesma solicitação de usuário (tem a mesma ID de operação).
- Salve a configuração de uma página como um favorito.
Observação
Se o aplicativo enviar muitos dados e você estiver usando o SDK do Application Insights para ASP.NET versão 2.0.0-beta3 ou posterior, o recurso de amostragem adaptável poderá operar e enviar apenas uma parte da telemetria. Saiba mais sobre amostragem.
Solução de problemas
Encontre respostas para dúvidas comuns.
O que causa telemetria atrasada, uma rede sobrecarregada e transmissão ineficiente?
System.Diagnostics.Tracing tem um recurso de autoflush. Esse recurso faz com que o SDK seja liberado com cada item de telemetria, o que é indesejável e pode causar problemas no adaptador de registro em log, como telemetria atrasada, uma rede sobrecarregada e transmissão ineficiente.
Como faço isso no Java?
Na instrumentação sem código Java, que é recomendada, os logs são coletados prontos para uso. Use o agente do Java 3.0.
O agente Java do Application Insights coleta logs de Log4j, Logback e java.util.logging prontos para uso.
Não há nenhuma opção do Application Insights no menu de contexto do projeto?
- Verifique se o Developer Analytics Tools está instalado no computador de desenvolvimento. No Visual Studio, acesseExtensões e Atualizações de > e procure ferramentas de análise de desenvolvedor. Se não estiver na guia Instalado , abra a guia Online e instale-a.
- Esse tipo de projeto pode ser um no qual o Developer Analytics Tools não dá suporte. Use a instalação manual.
Não há nenhuma opção de adaptador de log na ferramenta de configuração?
- Instale primeiro a estrutura de registros.
- Se você estiver usando System.Diagnostics.Trace, certifique-se de que o configurou no web.config.
- Verifique se você tem a versão mais recente do Application Insights. No Visual Studio, acesseExtensões e Atualizações das > e abra a guia Atualizações. Se as Ferramentas de Análise de Desenvolvedores estiverem lá, selecione-a para atualizá-la.
Por que recebo a mensagem de erro "A chave de instrumentação não pode estar vazia"?
Você provavelmente instalou o pacote NuGet de adaptador de log sem instalar o Application Insights. No Gerenciador de Soluções, clique com o botão direito do mouse emApplicationInsights.confige selecione Atualizar o Application Insights. Você recebe uma solicitação para entrar no Azure e criar um recurso do Application Insights ou, alternativamente, reutilizar um recurso existente. Isso deve corrigir o problema.
Por que vejo rastreamentos na pesquisa de diagnóstico, mas não outros eventos?
Pode levar algum tempo para que todos os eventos e solicitações percorram o pipeline.
Que quantidade de dados é mantida?
Vários fatores afetam a quantidade dos dados retidos. Para obter mais informações, consulte a seção Limites da página de métricas de evento do cliente.
Por que não vejo algumas entradas de log que eu esperava?
Talvez seu aplicativo envie grandes quantidades de dados e você esteja usando o SDK do Application Insights para ASP.NET, versão 2.0.0-beta3 ou posterior. Nesse caso, o recurso de amostragem adaptável pode operar e enviar apenas uma parte da telemetria. Saiba mais sobre amostragem.
Próximas etapas
- Valide se você está executando uma versão com suporte do SDK do Application Insights.
- Diagnosticar falhas e exceções no ASP.NET
- Saiba mais sobre a Pesquisa de Transações
- Configurar testes de disponibilidade e capacidade de resposta