Partilhar via


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

O Azure fornece diagnósticos incorporados para ajudar na depuração de uma aplicação do Azure App Service. Neste artigo, o leitor aprenderá a habilitar o registo de diagnóstico e a adicionar instrumentação à sua aplicação. Você também aprenderá a acessar as informações que o Azure registra.

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 Solucionar problemas de um aplicativo no Serviço de Aplicativo do Azure usando o Visual Studio.

Pode-se, além das instruções de registo neste artigo, utilizar o recurso de registo integrado do Azure Monitor. Para obter mais informações, consulte Enviar logs para o Azure Monitor.

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.

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

Visão geral dos tipos de registo

Tipo Plataforma Local de armazenamento de logs Descrição
Registo de aplicações Windows, Linux Sistema de arquivos do Serviço de Aplicativo e/ou blobs de Armazenamento do Azure Registre 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 ou 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 Mac OS 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 e código de resposta.
Mensagens de erro detalhadas Mac OS 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 razões de segurança, páginas de erro detalhadas não devem ser enviadas para 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 rastreamento do pedido Mac OS 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. Essas informações são úteis se você quiser 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 o arquivo de log.
Registo de implementação Windows, Linux Sistema de arquivos do Serviço de Aplicativo Registos de quando publica conteúdo numa aplicação. 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 utilizar um script de implantação personalizado, poderá usar o registo de implantação para determinar por que motivo o script está a falhar.

Quando os logs são armazenados no sistema de ficheiros do Serviço de Aplicações, eles estão sujeitos ao armazenamento disponível para o seu nível de preço. Para obter mais informações, consulte Limites do Serviço de Aplicativo.

Habilitar o log de aplicativos (Windows)

Para habilitar o log de aplicativos do Windows no portal do Azure:

  1. Vá à sua aplicação e selecione Monitorização>registros do Serviço de Aplicações.

  2. Selecione Ativado para uma destas opções ou ambas:

    • Log de aplicativos (sistema de arquivos): Esta opção é para fins de depuração temporária. Desliga-se em 12 horas.

    • Registo de aplicações (Blob): Esta opção é para registo a longo prazo. Precisa de um contentor de armazenamento de blob para gravar registos.

      A opção Blob inclui informações adicionais nas mensagens de log, como a ID da instância da máquina virtual de origem da mensagem de log (InstanceId), a ID do thread (Tid) e um carimbo de data/hora mais granular (EventTickCount).

  3. Em Level, selecione o nível de detalhes a ser registrado. A tabela a seguir mostra as categorias de log incluídas em cada nível:

    Nível 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)
  4. Selecione Guardar.

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.

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

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:

  1. Na guia Configurar, defina o respetivo recurso de registro como Desativado. Salve sua configuração.

  2. Ative novamente o registo no blob da conta de armazenamento. Salve sua configuração.

Habilitar o registro em log de aplicativos (Linux ou contêiner)

Para habilitar o log de aplicativos para aplicativos Linux ou contêineres personalizados no portal do Azure:

  1. Vá à sua aplicação e selecione Monitorização>registros do Serviço de Aplicações.

  2. Em Log de aplicativos, selecione Sistema de arquivos.

  3. Em Cota (MB), especifique a cota de disco para os logs do aplicativo.

  4. Em Período de retenção (dias), defina o número de dias para reter os logs.

  5. 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:

  1. Vá à sua aplicação e selecione Monitorização>registros do Serviço de Aplicações.

  2. Para logs do servidor Web, selecione Armazenamento para armazenar logs no armazenamento de blobs ou selecione Sistema de Arquivos para armazenar logs no sistema de arquivos do Serviço de Aplicações.

  3. Em Período de retenção (dias), defina o número de dias para reter os logs.

  4. Selecione Guardar.

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.

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:

  1. Na guia Configurar, defina o respetivo recurso de registro como Desativado. Salve sua configuração.

  2. Ative novamente o registo no blob da conta de armazenamento. Salve sua configuração.

Registrar erros detalhados

Para guardar a página de erro ou os rastreamentos de solicitações falhadas de aplicativos Windows no portal do Azure:

  1. Vá à sua aplicação e selecione Monitorização>registros do Serviço de Aplicações.

  2. Em Mensagens de erro detalhadas ou Rastreamento de solicitação com falha, selecione Ativado.

  3. Selecione Guardar.

Ambos os tipos de logs são armazenados no sistema de arquivos do Serviço de Aplicativo. Retém até 50 erros (ficheiros ou pastas). Quando o número de arquivos HTML excede 50, o Serviço de Aplicativo exclui os arquivos de erro mais antigos.

Por padrão, o rastreamento de solicitações com falha captura um log de solicitações que falharam com códigos de status HTTP entre 400 e 600. Para especificar regras personalizadas, substitua a seção <traceFailedRequests> no ficheiro Web.config.

Adicionar mensagens de log no código

No código da aplicação, pode utilizar as funcionalidades de registo habituais para enviar mensagens de registo para os registos da aplicação. Por exemplo:

Transmitir registos

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

Nota

Alguns tipos de buffers de log gravam no arquivo de log, o que pode fazer com que os eventos apareçam na ordem incorreta no fluxo. Por exemplo, uma entrada de log do 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.

Portal do Azure

Para transmitir logs no portal do Azure, vá para a sua aplicação e selecione Monitorização>Fluxo de log.

Shell na nuvem

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

Importante

Esse comando pode não funcionar com aplicativos Web hospedados em um plano do Serviço de Aplicativo baseado em Linux.

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

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

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

Terminal local

Para transmitir logs no console local, instale a CLI do Azure e entre em sua conta. Depois de iniciar sessão, 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 da Microsoft para trabalhar com o Armazenamento do Azure.

Para logs armazenados no sistema de ficheiros do App Service, aceda a eles usando o mecanismo Kudu.

  1. Abra a sua aplicação no portal do Azure e selecione Ferramentas de Desenvolvimento>Ferramentas Avançadas, e em seguida, selecione Ir.
  2. No Kudu, selecione Ferramentas>Despejo de diagnóstico.

Para Linux ou contentores personalizados, o arquivo ZIP contém registos de saída do console para o anfitrião do Docker e o contentor do 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 Aplicação, esses arquivos de log são o conteúdo do diretório /home/LogFiles. Os logs de implantação são armazenados no /site/deployments/.

Para aplicações do Windows, o arquivo ZIP contém o conteúdo do diretório D:\Home\LogFiles no sistema de arquivos do App Service. Tem a seguinte estrutura:

Tipo de log Diretório Descrição
Registo da aplicação /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 pedido com falha /LogFiles/W3SVC#########/ Contém arquivos XML e um arquivo XSL. Você pode visualizar os arquivos XML formatados no navegador.
Registo de erros detalhado /LogFiles/DetailedErrors/ Contém arquivos de erro HTM. Você pode visualizar os arquivos HTM no navegador.

Outra maneira de exibir os rastreamentos de solicitações falhadas é acessar a página do portal do seu aplicativo. No menu à esquerda, selecione Diagnosticar e resolver problemas. Pesquisar Logs de Rastreamento de Solicitação com Falha, e em seguida selecione o ícone para navegar e visualizar o rastreamento desejado.
Registo do servidor Web /LogFiles/http/RawLogs/ Contém arquivos de texto formatados usando o formato de arquivo de log estendido do W3C. Você pode ler esses arquivos usando um editor de texto ou uma ferramenta como o Log Parser.

O Serviço de Aplicativo não oferece suporte aos s-computername, s-ip e cs-version.
Registo de implantação /LogFiles/Git/ e /deployments/ Contém logs gerados pelos processos internos de implantação, juntamente com logs para implantações do Git.

Enviar registos para o Azure Monitor

Com a integração do Azure Monitor, você pode criar configurações de diagnóstico para enviar logs para contas de armazenamento, hubs de eventos e espaços de trabalho do 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.

Captura de tela que mostra seleções para exibir configurações de diagnóstico e adicionar uma configuração de diagnóstico.

Tipos de log suportados

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

Considerações sobre a rede

Para obter informações sobre restrições para configurações de diagnóstico, consulte Limites de destino.

Conteúdo relacionado