Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Azure fornece diagnósticos internos para auxiliar na depuração de um aplicativo do Serviço de Aplicativo do Azure. Neste artigo, você aprenderá a habilitar o log de diagnóstico e adicionar instrumentação ao seu aplicativo. 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.
Além das instruções de registro em log presentes neste artigo, use a funcionalidade de registro em log integrada do Azure Monitor. Para obter mais informações, consulte Enviar logs para o Azure Monitor.
Observação
O Serviço de Aplicativo fornece uma ferramenta de diagnóstico interativa dedicada 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.
Você também pode usar outros serviços do Azure para melhorar os recursos de registro em log e monitoramento de seu aplicativo, como o Azure Monitor.
Visão geral dos tipos de logs
Tipo | 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 pelo código do aplicativo diretamente usando o padrão de registro em log padrão do seu idioma. Cada mensagem é atribuída a uma das seguintes categorias: Crítico, Erro, Aviso, Informações, Depuração ou Rastreamento. Você pode selecionar o nível de detalhamento do log 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 ou blobs do Armazenamento do Microsoft 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 do recurso, o IP do cliente, a porta do cliente, o agente do usuário e o código de resposta. |
Mensagens de erro detalhadas | Windows | Sistema de arquivos do Serviço de Aplicativos | 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 erros 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. |
Rastreamento de solicitação com falha | Windows | Sistema de arquivos do Serviço de Aplicativos | 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 estilos XSL para exibir o arquivo de log. |
Log de implantação | Windows, Linux | Sistema de arquivos do Serviço de Aplicativos | Logs para quando você publica conteúdo em um aplicativo. O registro em log de implantação ocorre automaticamente e não há configurações configuráveis para registro em 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 os logs são armazenados no sistema de arquivos do Serviço de Aplicativo, eles ficam sujeitos ao armazenamento disponível para o seu tipo de preço. Para obter mais informações, consulte Limites do Serviço de Aplicativo.
Habilitar o log de aplicativo (Windows)
Para habilitar o registro em log de aplicativos para aplicativos do Windows no portal do Azure:
Acesse seu aplicativo e selecione Monitoramento>Logs do Serviço de Aplicativo.
Selecione Ativado para uma ou ambas as opções:
Registro em log de aplicativos (sistema de arquivos): essa opção se destina a fins temporários de depuração. Ela se desativa em 12 horas.
Registro de aplicativos (Blob): essa opção é para registro de longo prazo. Ela precisa de um contêiner de armazenamento de blobs para o qual os logs serão gravados.
A opção Blob inclui informações adicionais nas mensagens de log, como a ID da instância de máquina virtual de origem da mensagem de log (
InstanceId
), a ID do thread (Tid
) e um carimbo de data/hora mais granular (EventTickCount
).
Para Nível, selecione o nível de detalhes a registrar. 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 Detalhado Rastreamento, Depuração, Informações, Aviso, Erro, Crítico (todas as categorias) Clique em Salvar.
Se você escrever registros em blobs, a política de retenção não se aplicará mais se você excluir o aplicativo, mas manter os registros nos blobs. Para saber mais, confira Custos que podem ser acumulados após a exclusão de recursos.
Atualmente, somente os logs de aplicativos do .NET podem ser gravados no armazenamento de blobs. Os logs de aplicativos Java, PHP, Node.jse 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.
Se você regenerar as chaves de acesso da sua conta de armazenamento, deverá redefinir a respectiva configuração de log para usar as chaves de acesso atualizadas:
Na guia Configurar , defina o respectivo recurso de log como Desativado. Salve sua configuração.
Habilite o registro em log no blob da conta de armazenamento novamente. Salve sua configuração.
Habilitar o registro em log de aplicativos (Linux ou contêiner)
Para habilitar o registro em log de aplicativos para aplicativos Linux ou contêineres personalizados no portal do Azure:
Acesse seu aplicativo e selecione Monitoramento>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.
No Período de Retenção (Dias), defina o número de dias para manter os logs.
Clique em Salvar.
Habilitar o log de servidor web
Para habilitar o registro em log do servidor Web para aplicativos do Windows no portal do Azure:
Acesse seu aplicativo e selecione Monitoramento>Logs do Serviço de Aplicativo.
Em Registro em log do servidor Web, selecione Armazenamento para armazenar os logs no Armazenamento de Blobs ou Sistema de Arquivos para armazenar os logs no sistema de arquivos do Serviço de Aplicativo.
No Período de Retenção (Dias), defina o número de dias para manter os logs.
Clique em Salvar.
Se você escrever registros em blobs, a política de retenção não se aplicará mais se você excluir o aplicativo, mas manter os registros nos blobs. Para saber mais, confira Custos que podem ser acumulados após a exclusão de recursos.
Se você regenerar as chaves de acesso da sua conta de armazenamento, deverá redefinir a respectiva configuração de log para usar as chaves atualizadas:
Na guia Configurar , defina o respectivo recurso de log como Desativado. Salve sua configuração.
Habilite o registro em log no blob da conta de armazenamento novamente. Salve sua configuração.
Registrar erros detalhados
Para salvar a página de erros ou os rastreamentos de solicitações com falha para aplicativos Windows no portal do Azure:
Acesse seu aplicativo e selecione Monitoramento>Logs do Serviço de Aplicativo.
Em Mensagens de erro detalhadas ou rastreamento de solicitação com falha, selecione Ativado.
Clique em Salvar.
Os dois tipos de logs são armazenados no sistema de arquivos do serviço de aplicativo. Ele retém até 50 erros (arquivos 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ção 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 arquivo Web.config
.
Adicionar mensagens de log no código
No código do aplicativo, você pode usar as ferramentas de registro usuais para enviar mensagens de log para os registros do aplicativo. Por exemplo:
ASP.NET aplicativos 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, ASP.NET Core usa o provedor de log Microsoft.Extensions.Logging. AzureAppServices. Para obter mais informações, consulte Registro do ASP.NET Core no Azure. Para obter informações sobre os logs do SDK do WebJobs, confira Introdução ao SDK do Azure WebJobs.
Os aplicativos Python podem usar o OpenTelemetry para enviar logs para o log de diagnóstico do aplicativo. Para obter mais informações, consulte Habilitar o OpenTelemetry do Azure Monitor.
Transmitir logs
Antes de transmitir os 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 arquivos que terminam em .txt, .log ou .htm armazenados no /home/LogFiles
diretório (D:\home\LogFiles
).
Observação
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 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, acesse sua aplicação e selecione Monitoramento>Fluxo de Log.
Cloud Shell
Para transmitir logs ao vivo no Azure Cloud Shell, use o comando a seguir.
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. 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 as ferramentas de cliente da Microsoft para trabalhar com o Armazenamento do Azure.
Para logs armazenados no sistema de arquivos do Serviço de Aplicativo, acesse-os usando o mecanismo Kudu.
- Abra seu aplicativo no portal do Azure e selecione Ferramentas de Desenvolvimento>Ferramentas Avançadas, depois selecione Ir.
- No Kudu, selecione Ferramentas>Despejo de Diagnóstico.
Para contêineres Linux ou 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 /home/LogFiles
diretório. Os logs de implantação são armazenados em /site/deployments/
.
Para aplicativos do Windows, o arquivo ZIP contém o conteúdo do D:\Home\LogFiles
diretório no sistema de arquivos do Serviço de Aplicativo. Ele contém a seguinte estrutura:
Tipo de log | Diretório | Descrição |
---|---|---|
Log do 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ção com falha | /LogFiles/W3SVC#########/ |
Ele contém arquivos XML e um arquivo XSL. Você pode exibir os arquivos XML formatados no navegador. |
Log de erros detalhado | /LogFiles/DetailedErrors/ |
Contém arquivos de erro em formato HTM. Você pode exibir os arquivos HTM no navegador. Outra maneira de visualizar os rastreamentos de solicitações que falharam é visitar a página do seu aplicativo no portal. No menu à esquerda, selecione Diagnosticar e resolver problemas. Pesquise Logs de Rastreamento de Solicitação com Falha e selecione o ícone para navegar até o rastreamento desejado e exibi-lo. |
Log do servidor Web | /LogFiles/http/RawLogs/ |
Contém arquivos de texto formatados usando o formato de arquivo de log estendido W3C. Você pode ler esses arquivos usando um editor de texto ou uma ferramenta como o Analisador de Logs. O Serviço de Aplicativo não dá suporte aos campos s-computername , s-ip e cs-version . |
Log de implantação |
/LogFiles/Git/ e /deployments/ |
Contém logs gerados pelos processos de implantação internos, juntamente com logs para implantações do Git. |
Enviar logs ao 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 workspaces 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.
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 sobre a rede
Para obter informações sobre restrições para configurações de diagnóstico, consulte limites de destino.