Ativar registo de diagnóstico
Há diagnósticos internos para ajudar na depuração de um aplicativo do Serviço de Aplicativo. Nesta lição, você aprenderá como habilitar o log de diagnóstico e adicionar instrumentação ao seu aplicativo e como acessar as informações registradas pelo Azure.
A tabela a seguir mostra os tipos de registro, as plataformas suportadas e onde os logs podem ser armazenados e localizados para acessar as informações.
Type | Plataforma | Location | 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 são 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. |
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 .html páginas de erro 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. |
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. 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 | Ajuda a determinar por que uma implantação falhou. O log de implantação acontece automaticamente e não há configurações configuráveis para o log de implantação. |
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.
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 de acesso atualizadas. Para fazer isso, desative o recurso de registro em log e ligue-o novamente.
Você também pode definir o Nível de detalhes incluídos no log, conforme mostrado na tabela a seguir.
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.
Habilitar o log de aplicativos (Linux/Container)
Nos logs do Serviço de Aplicativo, defina a opção Log do Aplicativo como 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 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.
Depois de terminar, selecione Guardar.
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:
ASP.NET aplicativos podem usar a
System.Diagnostics.Trace
classe 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
Microsoft.Extensions.Logging.AzureAppServices
log.Os aplicativos Python podem usar o pacote OpenCensus para enviar logs para o log de diagnóstico do aplicativo.
Transmitir registos
Antes de transmitir 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 /LogFiles
diretório (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.
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 ao vivo 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 na sua conta. Depois de entrar, siga as instruções mostradas para a CLI do Azure.
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 logs armazenados no sistema de arquivos do Serviço de Aplicativo, a maneira mais fácil é baixar o arquivo ZIP no navegador em:
- Aplicativos Linux/contêiner:
https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
- Aplicações Windows:
https://<app-name>.scm.azurewebsites.net/api/dump
Para aplicativos Linux/contêiner, 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 .