Habilitar registro em log de diagnóstico
Há diagnósticos internos para auxiliar na depuração de um aplicativo do Serviço de Aplicativo. Nesta lição, você aprenderá a habilitar o log de diagnóstico e a adicionar instrumentação ao seu aplicativo, bem como acessar as informações registradas pelo Azure.
A tabela a seguir mostra os tipos de registro em log, as plataformas com suporte e o local em que os logs podem ser armazenados e localizados para acessar as informações.
Digite | Plataforma | Location | 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 serão geradas pela estrutura da Web que você escolher ou diretamente do código do aplicativo usando o modelo de registro em log padrão da sua linguagem de programação. Cada mensagem recebe uma das seguintes categorias: crítico, erro, aviso, informações, depuraçãoe rastreamento. |
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 .html que seriam enviadas ao navegador do cliente. Por motivos de segurança, as 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 cada vez que um erro de aplicativo ocorre com código HTTP 400 ou superior. |
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. Uma pasta é gerada para cada solicitação com falha, que contém o arquivo de log XML e a folha de estilos XSL usada para exibir o arquivo de log. |
Log de implantação | Windows, Linux | Sistema de arquivos do serviço de aplicativo | Ajuda a determinar por que uma implantação falhou. O log de implantação acontece automaticamente e não há definições de configuração para o log de implantação. |
Habilitar o log de aplicativo (Windows)
Para habilitar o registro em log de aplicativos para aplicativos 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.
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 de acesso. Para fazer isso, desative o recurso de registro em log e ative-o novamente.
Você também pode definir o Nível dos detalhes incluídos no log, conforme mostrado na tabela a seguir.
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.
Habilitar o log de aplicativo (Linux/contêiner)
Em Logs do Serviço de Aplicativo, defina a opção Log do aplicativo para 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 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.
Quando terminar, selecione Avançar.
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:
Os aplicativos ASP.NET podem usar a classe
System.Diagnostics.Trace
para registrar informações no log de diagnóstico do aplicativo. Por exemplo:System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
Por padrão, o ASP.NET Core usa o provedor de logs
Microsoft.Extensions.Logging.AzureAppServices
.Os aplicativos Python podem usar o pacote OpenCensus para enviar logs para o log de diagnóstico do aplicativo.
Transmitir logs
Antes de transmitir os logs em tempo real, habilite o tipo de log desejado. Todas as informações gravadas em arquivos que terminam em .txt, .log ou .htm armazenadas no diretório /LogFiles
(d:/home/logfiles
) são transmitidas pelo Serviço de Aplicativo.
Observação
Alguns tipos de buffer de log gravam no arquivo de log, o que pode resultar em eventos com problemas na transmissão. 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.
Portal do Azure – para transmitir logs no portal do Azure, navegue até seu aplicativo e selecione Fluxo de log.
CLI do Azure – para transmitir logs ativos no Cloud Shell, use o seguinte comando:
az webapp log tail --name appname --resource-group myResourceGroup
Console local – para transmitir logs no console local, instale a CLI do Azure e entre em sua conta. Depois de conectado, siga as instruções mostradas para a CLI do Azure.
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 logs armazenados no sistema de arquivos do serviço de aplicativo, a maneira mais fácil é baixar o arquivo ZIP no navegador em:
- Aplicativos de contêiner/Linux:
https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
- Aplicativos do Windows:
https://<app-name>.scm.azurewebsites.net/api/dump
Para aplicativos do Linux/contêiner, o arquivo ZIP contém logs de saída do console para o host do docker e o 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.