Compartilhar via


Habilitar log de diagnósticos para aplicativos no Serviço de Aplicativo do Azure

Observação

A partir de 1º de junho de 2024, todos os aplicativos recém-criados do Serviço de Aplicativo terão a opção de gerar um nome do host padrão exclusivo usando a convenção de nomenclatura <app-name>-<random-hash>.<region>.azurewebsites.net. Os nomes de aplicativos existentes permanecerão inalterados.

Exemplo: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Para obter mais detalhes, consulte Nome do Host Padrão Exclusivo para o Recurso Serviço de Aplicativo.

Este vídeo mostra como habilitar o registro em log de diagnóstico para aplicativos.

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

Visão geral

O Azure fornece diagnósticos internos para auxiliar na depuração de um aplicativo de Serviço de Aplicativo. Neste artigo, você saberá como habilitar o registro em log de diagnóstico e adicionar instrumentação ao seu aplicativo, bem 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 saber mais sobre como trabalhar com logs de diagnóstico usando o Visual Studio, confira Solucionando problemas do Azure no Visual Studio.

Observação

Além das instruções de registro em log presentes neste artigo, também é possível usar o recurso de registro em log integrado do Azure Monitor. Você encontrará mais informações sobre esse recurso na seção Enviar logs para o Azure Monitor.

Digite Plataforma Local de armazenamento de logs Descrição
Registro em log do aplicativo Windows, Linux Sistema de arquivos do serviço de aplicativo e/ou blobs de armazenamento do Azure Registra as mensagens geradas pelo código do aplicativo. As mensagens podem ser geradas pela estrutura da Web que você escolher ou diretamente do código do aplicativo usando o modelo de registro em log padrão do seu idioma. Cada mensagem recebe uma das seguintes categorias: crítico, erro, aviso, informações, depuraçãoe rastreamento. Você pode selecionar o quão detalhado deseja que o log seja definindo o nível de severidade ao habilitar o log do aplicativo.
Log do servidor Web Windows Sistema de arquivos do serviço de aplicativo e/ou Armazenamento de blobs do Azure Dados de solicitação HTTP brutos no formato de arquivo de log estendido W3C. Cada mensagem de log inclui dados como o método HTTP, o URI de recurso, o IP do cliente, a porta do cliente, o agente do usuário, o 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 seriam enviadas ao 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 ocorre um erro de aplicativo com código HTTP 400 ou superior. Pode conter informações que podem ajudar a determinar por que o servidor retornou o código de erro.
De uma solicitação de rastreio com falha Windows Sistema de arquivos do serviço de aplicativo Informações detalhadas de rastreamento sobre solicitações com falha, incluindo um rastreamento dos componentes IIS usados para processar a solicitação e o tempo gasto em cada componente. Essas informações são úteis para melhorar o desempenho do site ou isolar um erro HTTP específico. Uma pasta é gerada para cada solicitação com falha. A pasta contém o arquivo de log XML e a folha de estilo XSL para exibir com o arquivo de log.
Log de implantação Windows, Linux Sistema de arquivos do serviço de aplicativo Registra quando você publica o conteúdo em um aplicativo. O log de implantação acontece automaticamente e não há definições de configuração 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 seu tipo de preço (confira Limites do Serviço de Aplicativo).

Observação

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

Além disso, você pode usar outros serviços do Azure para aprimorar os recursos de log e monitoramento do seu aplicativo, como Azure monitor.

Habilitar o log de aplicativo (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 o registro em log do aplicativo (Filesystem) ou log de aplicativo (BLOB) ou ambos.

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

Observação

No momento, somente logs de aplicativo do .NET podem ser gravados no Armazenamento de Blobs. Os logs de aplicativo de Java, PHP, Node.js e Python só podem ser armazenados no sistema de arquivos do Serviço de Aplicativo (sem modificações de código para gravar logs em armazenamentos externos).

Além disso, se você regenerar as chaves de acesso da sua conta de armazenamento, será necessário redefinir a respectiva configuração de registro em log para usar as chaves de acesso atualizadas. Para fazer isso:

  1. Na guia Configurar, defina o respectivo recurso de 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ívelou o nível de detalhes para o log. A tabela a seguir mostra as categorias de log incluídas em cada nível:

Nível Categorias incluídas
Desabilitado Nenhum
Erro Erro, Crítico
Aviso Aviso, Erro, Crítico
Informações Informações, Aviso, Erro, Crítico
Verbose Rastreamento, Depuração, Informações, Aviso, Erro, Crítico (todas as categorias)

Quando terminar, selecione Avançar.

Observação

Se você gravar logs em blobs, a política de retenção não se aplicará mais se você excluir o aplicativo, mas manter os logs nos blobs. Para saber mais, confira Custos que podem ser acumulados após a exclusão de recursos.

Habilitar o log de aplicativo (Linux/contêiner)

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 do aplicativo, 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 que os logs devem ser retidos.

Quando terminar, selecione Avançar.

Habilitar o log de servidor web

Para habilitar o log do servidor Web do Windows no portal do Azure, navegue até seu aplicativo e selecione logs do serviço de aplicativo.

Para o log do servidor Web, selecione armazenamento para armazenar logs no armazenamento de blobs 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 que os logs devem ser retidos.

Observação

Se você regenerar as chaves de acesso de sua conta de armazenamento, será necessário redefinir a respectiva configuração de log para usar as chaves atualizadas. Para fazer isso:

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

Quando terminar, selecione Avançar.

Observação

Se você gravar logs em blobs, a política de retenção não se aplicará mais se você excluir o aplicativo, mas manter os logs nos blobs. Para saber mais, confira Custos que podem ser acumulados após a exclusão de recursos.

Erros detalhados de log

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 Registro em log detalhado de erros ou Rastreamento de solicitação com falha, selecione Ativado e clique em Salvar.

Os dois tipos de logs são armazenados no sistema de arquivos do serviço de aplicativo. Até 50 erros (arquivos ou pastas) são mantidos. Quando o número de arquivos HTML exceder 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 seção <traceFailedRequests> 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 aos logs do aplicativo. Por exemplo:

Transmitir logs

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

Observação

Alguns tipos de buffer de registro em log são gravados no arquivo de registro, o que pode fazer com que os eventos apareçam na ordem incorreta no fluxo. Por exemplo, uma entrada para log de aplicativo, que ocorre quando um usuário visita uma página, pode ser exibida durante a transmissão antes da entrada de log HTTP correspondente para a solicitação da página.

No Portal do Azure

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

Em Cloud Shell

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

Importante

Este comando pode não funcionar com aplicativos Web hospedados em um plano do serviço de aplicativo do 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 CLI do Azure e entre em sua conta. Conecte-se e siga as instruções do Cloud Shell.

Acessar arquivos de log

Se você configurar a opção de blobs de 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 do armazenamento do Azure.

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

  • Contêineres personalizados/Linux: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Aplicativos do Windows: https://<app-name>.scm.azurewebsites.net/api/dump

Para contêineres Linux/personalizados, o arquivo ZIP contém logs de saída do console relacionados ao host do Docker e ao contêiner do Docker. Para um aplicativo expandido, 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. Os logs de implantação são armazenados em /site/deployments/.

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. Ele contém a seguinte estrutura:

Tipo de log Diretório Descrição
Logs de aplicativo /LogFiles/Application/ Contém um ou mais arquivos de texto. O formato das mensagens de log depende do provedor de log que você usa.
Rastreamento de solicitações com falha /LogFiles/W3SVC#########/ Ele contém arquivos XML e um arquivo XSL. Você pode exibir os arquivos XML formatados no navegador.
Logs de erros detalhados /LogFiles/DetailedErrors/ Contém arquivos de erro HTM. Você pode exibir os arquivos HTM no navegador.
Outra maneira de exibir os rastreamentos de solicitação com falha é navegar até a página do aplicativo no Portal. No menu à esquerda, selecione Diagnosticar e resolver problemas, pesquise Logs de rastreamento de solicitações com falha e clique no ícone para navegar 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. É possível ler esses arquivos usando um editor de texto ou um utilitário como o Log Parser.
O serviço de aplicativo não dá suporte aos campos s-computername, s-ip ou cs-version .
Logs de implantação /LogFiles/git/ e /deployments/ Contém logs gerados pelos processos internos de implantação, bem como logs de implantações do Git.

Enviar logs ao Azure Monitor

Com a integração do Azure Monitor, é possível criar configurações de diagnóstico para enviar logs para contas de armazenamento, hubs de eventos e o Log Analytics. Quando você adiciona uma configuração de diagnóstico, o Serviço de Aplicativo adiciona configurações de aplicativo ao seu aplicativo, o que dispara uma reinicialização do aplicativo.

Configurações de diagnóstico

Tipos de log com suporte

Para obter uma lista de tipos de log com suporte e suas descrições, consulte Logs de recursos com suporte para Microsoft.Web.

Considerações de rede

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

Próximas etapas