Ativar o registo de diagnósticos para aplicações no Serviço de Aplicações do Azure

Este vídeo mostra como ativar o registo de diagnósticos para aplicações.

As etapas no vídeo também são descritas nas seções a seguir.

Descrição geral

O Azure fornece diagnósticos internos para ajudar na depuração de um aplicativo do Serviço de Aplicativo. Neste artigo, você aprenderá como habilitar o log de diagnóstico e adicionar instrumentação ao seu aplicativo, bem como como acessar as informações registradas pelo Azure.

Este artigo usa o portal do Azure e a CLI do Azure para trabalhar com logs de diagnóstico. Para obter informações sobre como trabalhar com logs de diagnóstico usando o Visual Studio, consulte Solucionando problemas do Azure no Visual Studio.

Nota

Além das instruções de registro em log neste artigo, há um novo recurso de log integrado com o Monitoramento do Azure. Você encontrará mais informações sobre esse recurso na seção Enviar logs para o Azure Monitor .

Type Plataforma Localização Description
Registo de aplicação Windows, Linux Sistema de arquivos do Serviço de Aplicativo e/ou blobs de Armazenamento do Azure Registra mensagens geradas pelo código do aplicativo. As mensagens podem ser geradas pela estrutura da Web que você escolher, ou a partir do código do seu aplicativo diretamente usando o padrão de log padrão do seu idioma. A cada mensagem é atribuída uma das seguintes categorias: Crítica, Erro, Aviso, Informações, Depuração e Rastreamento. Você pode selecionar o quão detalhado você deseja que o log seja definindo o nível de gravidade ao habilitar o log do aplicativo.
Registo de servidores Web Windows Sistema de arquivos do Serviço de Aplicativo ou blobs de Armazenamento do Azure Dados brutos de solicitação HTTP no formato de arquivo de log estendido do W3C. Cada mensagem de log inclui dados como o método HTTP, URI de recurso, IP do cliente, porta do cliente, agente do usuário, código de resposta e assim por diante.
Mensagens de erro detalhadas Windows Sistema de arquivos do Serviço de Aplicativo Cópias das páginas de erro .htm que teriam sido enviadas para o navegador do cliente. Por motivos de segurança, páginas de erro detalhadas não devem ser enviadas aos clientes em produção, mas o Serviço de Aplicativo pode salvar a página de erro sempre que ocorrer um erro de aplicativo com código HTTP 400 ou superior. A página pode conter informações que podem ajudar a determinar por que o servidor retorna o código de erro.
Falha no rastreio do pedido Windows Sistema de arquivos do Serviço de Aplicativo Informações detalhadas de rastreamento sobre solicitações com falha, incluindo um rastreamento dos componentes do IIS usados para processar a solicitação e o tempo gasto em cada componente. É útil se você quiser melhorar o desempenho do site ou isolar um erro HTTP específico. Uma pasta é gerada para cada solicitação com falha, que contém o arquivo de log XML e a folha de estilo XSL para exibir o arquivo de log.
Log de implantação Windows, Linux Sistema de arquivos do Serviço de Aplicativo Registra quando você publica conteúdo em um aplicativo. O log de implantação acontece automaticamente e não há configurações configuráveis para o log de implantação. Ele ajuda a determinar por que uma implantação falhou. Por exemplo, se você usar um script de implantação personalizado, poderá usar o log de implantação para determinar por que o script está falhando.

Quando armazenados no sistema de arquivos do Serviço de Aplicativo, os logs estão sujeitos ao armazenamento disponível para sua camada de preço (consulte Limites do Serviço de Aplicativo).

Nota

O Serviço de Aplicativo fornece uma ferramenta de diagnóstico dedicada e interativa para ajudá-lo a solucionar problemas do seu aplicativo. Para obter mais informações, consulte Visão geral do diagnóstico do Serviço de Aplicativo do Azure.

Além disso, você pode usar outros serviços do Azure para melhorar os recursos de registro em log e monitoramento do seu aplicativo, como o Azure Monitor.

Habilitar o log de aplicativos (Windows)

Para habilitar o log de aplicativos para aplicativos do Windows no portal do Azure, navegue até seu aplicativo e selecione Logs do Serviço de Aplicativo.

Selecione Ativado para Log de aplicativos (sistema de arquivos) ou Log de aplicativos (Blob) ou ambos.

A opção Filesystem é para fins de depuração temporária e desliga-se em 12 horas. A opção Blob é para registro em log de longo prazo e precisa de um contêiner de armazenamento de blob para gravar logs. A opção Blob também inclui informações adicionais nas mensagens de log, como a ID da instância da VM de origem da mensagem de log (InstanceId), ID do thread (Tid) e um carimbo de data/hora mais granular (EventTickCount).

Nota

Atualmente, apenas os logs de aplicativos .NET podem ser gravados no armazenamento de blobs. Os logs de aplicativos Java, PHP, Node.js, Python só podem ser armazenados no sistema de arquivos do Serviço de Aplicativo (sem modificações de código para gravar logs no armazenamento externo).

Além disso, se regenerar as chaves de acesso da sua conta de armazenamento, tem de repor a respetiva configuração de registo para utilizar as chaves de acesso atualizadas. Para tal:

  1. Na guia Configurar, defina o respetivo recurso de registro em log como Desativado. Salve sua configuração.
  2. Habilite o registro no blob da conta de armazenamento novamente. Salve sua configuração.

Selecione o Nível ou o nível de detalhes a ser registrado. A tabela a seguir mostra as categorias de log incluídas em cada nível:

Level Categorias incluídas
Desativado Nenhuma
Erro Erro, Crítico
Aviso Aviso, Erro, Crítico
Informações Informações, Aviso, Erro, Crítico
Verbose Trace, Debug, Info, Warning, Error, Critical (todas as categorias)

Depois de terminar, selecione Guardar.

Nota

Se você gravar logs em blobs, a política de retenção não se aplicará mais se você excluir o aplicativo, mas mantiver os logs nos blobs. Para obter mais informações, consulte Custos que podem se acumular após a exclusão de recursos.

Habilitar o log de aplicativos (Linux/Container)

Para habilitar o log de aplicativos para aplicativos Linux ou contêineres personalizados no portal do Azure, navegue até seu aplicativo e selecione logs do Serviço de Aplicativo.

Em Log de aplicativos, selecione Sistema de arquivos.

Em Cota (MB), especifique a cota de disco para os logs do aplicativo. Em Período de retenção (dias), defina o número de dias em que os logs devem ser mantidos.

Depois de terminar, selecione Guardar.

Habilitar o registro em log do servidor Web

Para habilitar o log do servidor Web para aplicativos do Windows no portal do Azure, navegue até seu aplicativo e selecione Logs do Serviço de Aplicativo.

Para registro em log do servidor Web, selecione Armazenamento para armazenar logs no armazenamento de blob ou Sistema de Arquivos para armazenar logs no sistema de arquivos do Serviço de Aplicativo.

Em Período de retenção (dias), defina o número de dias em que os logs devem ser mantidos.

Nota

Se regenerar as chaves de acesso da sua conta de armazenamento, tem de repor a respetiva configuração de registo para utilizar as chaves atualizadas. Para tal:

  1. Na guia Configurar, defina o respetivo recurso de registro em log como Desativado. Salve sua configuração.
  2. Habilite o registro no blob da conta de armazenamento novamente. Salve sua configuração.

Depois de terminar, selecione Guardar.

Nota

Se você gravar logs em blobs, a política de retenção não se aplicará mais se você excluir o aplicativo, mas mantiver os logs nos blobs. Para obter mais informações, consulte Custos que podem se acumular após a exclusão de recursos.

Registrar erros detalhados

Para salvar a página de erro ou o rastreamento de solicitação com falha para aplicativos do Windows no portal do Azure, navegue até seu aplicativo e selecione Logs do Serviço de Aplicativo.

Em Registo de Erros Detalhado ou Seguimento de Pedidos Falhados, selecione Ativado e, em seguida, selecione Guardar.

Ambos os tipos de logs são armazenados no sistema de arquivos do Serviço de Aplicativo. Até 50 erros (ficheiros/pastas) são mantidos. Quando o número de arquivos HTML excede 50, os arquivos de erro mais antigos são excluídos automaticamente.

O recurso Rastreamento de solicitação com falha por padrão captura um log de solicitações que falharam com códigos de status HTTP entre 400 e 600. Para especificar regras personalizadas, você pode substituir a <traceFailedRequests> seção no arquivo web.config .

Adicionar mensagens de log no código

No código do aplicativo, você usa os recursos de log usuais para enviar mensagens de log para os logs do aplicativo. Por exemplo:

Transmitir registos

Antes de transmitir logs em tempo real, habilite o tipo de log desejado. Todas as informações gravadas na saída do console ou nos arquivos que terminam em .txt, .log ou .htm armazenados no diretório /home/LogFiles (D:\home\LogFiles) são transmitidas pelo Serviço de Aplicativo.

Nota

Alguns tipos de buffer de log gravam no arquivo de log, o que pode resultar em eventos fora de ordem no fluxo. Por exemplo, uma entrada de log de aplicativo que ocorre quando um usuário visita uma página pode ser exibida no fluxo antes da entrada de log HTTP correspondente para a solicitação de página.

No portal do Azure

Para transmitir logs no portal do Azure, navegue até seu aplicativo e selecione Fluxo de log.

No Cloud Shell

Para transmitir logs ao vivo no Cloud Shell, use o seguinte comando:

Importante

Este comando pode não funcionar com aplicativos Web hospedados em um plano de serviço de aplicativo Linux.

az webapp log tail --name appname --resource-group myResourceGroup

Para filtrar tipos de log específicos, como HTTP, use o parâmetro --Provider . Por exemplo:

az webapp log tail --name appname --resource-group myResourceGroup --provider http

No terminal local

Para transmitir logs no console local, instale a CLI do Azure e entre na sua conta. Depois de entrar, siga as instruções para o Cloud Shell

Aceder a ficheiros de registo

Se você configurar a opção de blobs do Armazenamento do Azure para um tipo de log, precisará de uma ferramenta de cliente que funcione com o Armazenamento do Azure. Para obter mais informações, consulte Ferramentas de cliente de armazenamento do Azure.

Para logs armazenados no sistema de arquivos do Serviço de Aplicativo, a maneira mais fácil é baixar o arquivo ZIP no navegador em:

  • Linux/contêineres personalizados: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Aplicações Windows: https://<app-name>.scm.azurewebsites.net/api/dump

Para Linux/contêineres personalizados, o arquivo ZIP contém logs de saída do console para o host docker e o contêiner docker. Para um aplicativo escalonado, o arquivo ZIP contém um conjunto de logs para cada instância. No sistema de arquivos do Serviço de Aplicativo, esses arquivos de log são o conteúdo do diretório /home/LogFiles .

Para aplicativos do Windows, o arquivo ZIP contém o conteúdo do diretório D:\Home\LogFiles no sistema de arquivos do Serviço de Aplicativo. Tem a seguinte estrutura:

Tipo de log Diretório Description
Logs de aplicativos /LogFiles/Aplicativo/ Contém um ou mais arquivos de texto. O formato das mensagens de log depende do provedor de log que você usa.
Rastreamentos de solicitação com falha /LogFiles/W3SVC#########/ Contém arquivos XML e um arquivo XSL. Você pode visualizar os arquivos XML formatados no navegador.
Logs de erros detalhados /LogFiles/DetailedErrors/ Contém arquivos de erro HTM. Você pode visualizar os arquivos HTM no navegador.
Outra maneira de exibir os rastreamentos de solicitação com falha é navegar até a página do seu aplicativo no portal. No menu à esquerda, selecione Diagnosticar e resolver problemas, procure por Logs de rastreamento de solicitação com falha e clique no ícone para procurar e exibir o rastreamento desejado.
Logs do servidor Web /LogFiles/http/RawLogs/ Contém arquivos de texto formatados usando o formato de arquivo de log estendido do W3C. Essas informações podem ser lidas usando um editor de texto ou um utilitário como o Log Parser.
O Serviço de Aplicativo não oferece suporte aos s-computernamecampos , s-ipou cs-version .
Logs de implantação /LogFiles/Git/ e /deployments/ Contêm logs gerados pelos processos internos de implantação, bem como logs para implantações do Git.

Enviar registos para o Azure Monitor

Com a nova integração do Azure Monitor, você pode criar Configurações de Diagnóstico para enviar logs para Contas de Armazenamento, Hubs de Eventos e Análise de Log.

Definições de Diagnóstico

Tipos de log suportados

A tabela a seguir mostra os tipos de log e descrições suportados:

Nome do Registo Tipo de log Windows Contêiner do Windows Linux Contêiner Linux Description
Logs do Console do Serviço de Aplicativo AppServiceConsoleLogs Java SE & Tomcat Sim Sim Sim Saída padrão e erro padrão 3
Logs HTTP AppServiceHTTPLogs Sim Sim Sim Sim Logs do servidor Web
Logs da plataforma do ambiente do serviço de aplicativo AppServiceEnvironmentPlatformLogs Sim N/A Sim Sim Ambiente do Serviço de Aplicativo: dimensionamento, alterações de configuração e logs de status
Logs de auditoria de acesso AppServiceAuditLogs Sim Sim Sim Sim Atividade de login via FTP e Kudu
Logs de auditoria de alteração de conteúdo do site AppServiceFileAuditLogs Sim Sim TBA TBA Alterações de arquivo feitas no conteúdo do site; disponível apenas para o nível Premium e superior
Logs do Aplicativo do Serviço de Aplicativo AppServiceAppLogs ASP.NET, .NET Core, & Tomcat 1 ASP.NET & Tomcat 1 .NET Core, Java, SE & Tomcat Blessed Images 2 Java SE & Tomcat Blessed Images 2 Logs de aplicativos 3
Logs de auditoria de segurança IPSecurity AppServiceIPSecAuditLogs Sim Sim Sim Sim Pedidos de Regras de IP
Logs da Plataforma do Serviço de Aplicativo AppServicePlatformLogs TBA Sim Sim Sim Logs de operação do contêiner
Relatar logs de auditoria antivírus AppServiceAntivirusScanAuditLogs 4 Sim Sim Sim Sim Logs de verificação antivírus usando o Microsoft Defender for Cloud; disponível apenas para o nível Premium

1 Para aplicativos Tomcat, adicione TOMCAT_USE_STARTUP_BAT às configurações do aplicativo e defina-o como false ou 0. Precisa estar na versão mais recente do Tomcat e usar java.util.logging.

2 Para aplicativos Java SE, adicione WEBSITE_AZMON_PREVIEW_ENABLED às configurações do aplicativo e defina-o como true ou como 1.

3 O limite de registro atual é definido como 100 logs por minuto.

4 O tipo de log AppServiceAntivirusScanAuditLogs ainda está em Visualização

Considerações sobre a rede

Para restrições de Configurações de Diagnóstico, consulte a documentação oficial de Configurações de Diagnóstico sobre limites de destino.

Próximos passos