Permitir o início de sessão de diagnóstico de apps no Azure App ServiceEnable diagnostics logging for apps in Azure App Service

Descrição geralOverview

A Azure fornece diagnósticos incorporados para ajudar na depuração de uma aplicação do Serviço de Aplicações.Azure provides built-in diagnostics to assist with debugging an App Service app. Neste artigo, aprende-se a ativar a gravação de diagnóstico e a adicionar instrumentação à sua aplicação, bem como a aceder às informações registadas pelo Azure.In this article, you learn how to enable diagnostic logging and add instrumentation to your application, as well as how to access the information logged by Azure.

Este artigo utiliza o portal Azure e o Azure CLI para trabalhar com registos de diagnóstico.This article uses the Azure portal and Azure CLI to work with diagnostic logs. Para obter informações sobre o trabalho com registos de diagnóstico utilizando o Visual Studio, consulte Troubleshooting Azure in Visual Studio.For information on working with diagnostic logs using Visual Studio, see Troubleshooting Azure in Visual Studio.

Nota

Além das instruções de registo neste artigo, há uma nova capacidade integrada de registo com monitorização Azure.In addition to the logging instructions in this article, there's new, integrated logging capability with Azure Monitoring. Encontrará mais sobre esta capacidade na secção Enviar registos para a secção Azure Monitor (pré-visualização).You'll find more on this capability in the Send logs to Azure Monitor (preview) section.

TipoType PlataformaPlatform LocalizaçãoLocation DescriçãoDescription
Registo de aplicaçãoApplication logging Windows, LinuxWindows, Linux Sistema de ficheiros do Serviço de Aplicações e/ou bolhas de armazenamento AzureApp Service file system and/or Azure Storage blobs Regista mensagens geradas pelo seu código de aplicação.Logs messages generated by your application code. As mensagens podem ser geradas pela estrutura web que escolher, ou pelo seu código de aplicação diretamente utilizando o padrão de registo padrão do seu idioma.The messages can be generated by the web framework you choose, or from your application code directly using the standard logging pattern of your language. A cada mensagem é atribuída uma das seguintes categorias: Critical, Error, Warning, Info, Debuge Trace.Each message is assigned one of the following categories: Critical, Error, Warning, Info, Debug, and Trace. Pode selecionar o quão verbose pretende que a sessão seja, definindo o nível de gravidade quando ativa a sessão de registo de aplicações.You can select how verbose you want the logging to be by setting the severity level when you enable application logging.
Início de sessão do servidor webWeb server logging WindowsWindows Sistema de ficheiros do Serviço de Aplicações ou bolhas de armazenamento AzureApp Service file system or Azure Storage blobs Dados de pedidos de HTTP brutos no formato de ficheiro de registo estendido W3C.Raw HTTP request data in the W3C extended log file format. Cada mensagem de registo inclui dados como o método HTTP, recurso URI, COMPUTADOR DO Cliente, porta do cliente, agente do utilizador, código de resposta, e assim por diante.Each log message includes data such as the HTTP method, resource URI, client IP, client port, user agent, response code, and so on.
Mensagens de erro detalhadasDetailed Error Messages WindowsWindows Sistema de ficheiros do Serviço de AplicaçõesApp Service file system Cópias das páginas de erro .htm que teriam sido enviadas para o navegador cliente.Copies of the .htm error pages that would have been sent to the client browser. Por razões de segurança, as páginas de erro detalhadas não devem ser enviadas para os clientes em produção, mas o Serviço de Aplicações pode guardar a página de erro sempre que ocorrer um erro de aplicação que tenha o código HTTP 400 ou superior.For security reasons, detailed error pages shouldn't be sent to clients in production, but App Service can save the error page each time an application error occurs that has HTTP code 400 or greater. A página pode conter informações que podem ajudar a determinar por que o servidor devolve o código de erro.The page may contain information that can help determine why the server returns the error code.
Rastreio de pedido falhadoFailed request tracing WindowsWindows Sistema de ficheiros do Serviço de AplicaçõesApp Service file system Informações detalhadas sobre os pedidos falhados, incluindo um traço dos componentes IIS utilizados para processar o pedido e o tempo de cada componente.Detailed tracing information on failed requests, including a trace of the IIS components used to process the request and the time taken in each component. É útil se pretender melhorar o desempenho do site ou isolar um erro HTTP específico.It's useful if you want to improve site performance or isolate a specific HTTP error. Uma pasta é gerada para cada pedido falhado, que contém o ficheiro de registo XML, e a folha de estilo XSL para visualizar o ficheiro de registo com.One folder is generated for each failed request, which contains the XML log file, and the XSL stylesheet to view the log file with.
Registo de implantaçãoDeployment logging Windows, LinuxWindows, Linux Sistema de ficheiros do Serviço de AplicaçõesApp Service file system Regista para quando publica conteúdo numa aplicação.Logs for when you publish content to an app. O registo de implementação ocorre automaticamente e não existem configurações configuráveis para a verificação da sessão.Deployment logging happens automatically and there are no configurable settings for deployment logging. Ajuda-te a determinar porque é que uma implantação falhou.It helps you determine why a deployment failed. Por exemplo, se utilizar um script de implementação personalizado,poderá utilizar o registo de implementação para determinar por que o script está a falhar.For example, if you use a custom deployment script, you might use deployment logging to determine why the script is failing.

Nota

O App Service fornece uma ferramenta de diagnóstico dedicada e interativa para ajudá-lo a resolver problemas com a sua aplicação.App Service provides a dedicated, interactive diagnostics tool to help you troubleshoot your application. Para mais informações, consulte a visão geral do Serviço de Aplicações Azure.For more information, see Azure App Service diagnostics overview.

Além disso, pode utilizar outros serviços Azure para melhorar as capacidades de registo e monitorização da sua aplicação, como o Azure Monitor.In addition, you can use other Azure services to improve the logging and monitoring capabilities of your app, such as Azure Monitor.

Ativar o registo de aplicações (Windows)Enable application logging (Windows)

Nota

A sessão de registo de aplicações para armazenamento de bolhas só pode usar contas de armazenamento na mesma região que o Serviço de AplicaçõesApplication logging for blob storage can only use storage accounts in the same region as the App Service

Para ativar o registo de aplicações para aplicações do Windows no portal Azure,navegue para a sua aplicação e selecione registos do Serviço de Aplicações.To enable application logging for Windows apps in the Azure portal, navigate to your app and select App Service logs.

Selecione On for Application Logging (Filesystem) ou Application Logging (Blob) ou ambos.Select On for either Application Logging (Filesystem) or Application Logging (Blob), or both.

A opção Filesystem destina-se a depurações temporárias e desliga-se em 12 horas.The Filesystem option is for temporary debugging purposes, and turns itself off in 12 hours. A opção Blob é para a exploração madeireira a longo prazo, e precisa de um recipiente de armazenamento de bolhas para escrever registos.The Blob option is for long-term logging, and needs a blob storage container to write logs to. A opção Blob também inclui informações adicionais nas mensagens de registo, tais como o ID da origem VM instância da mensagem de registo InstanceId (, thread ID ( Tid ) e um timetamp mais granular ( EventTickCount ).The Blob option also includes additional information in the log messages, such as the ID of the origin VM instance of the log message (InstanceId), thread ID (Tid), and a more granular timestamp (EventTickCount).

Nota

Atualmente apenas os registos de aplicações .NET podem ser escritos para o armazenamento do blob.Currently only .NET application logs can be written to the blob storage. Java, PHP, Node.js, os registos de aplicações Python só podem ser armazenados no sistema de ficheiros do Serviço de Aplicações (sem modificações de código para escrever registos para armazenamento externo).Java, PHP, Node.js, Python application logs can only be stored on the App Service file system (without code modifications to write logs to external storage).

Além disso, se regenerar as teclas de acesso da sua conta de armazenamento,tem de redefinir a respetiva configuração de registo para utilizar as teclas de acesso atualizadas.Also, if you regenerate your storage account's access keys, you must reset the respective logging configuration to use the updated access keys. Para efetuar este procedimento:To do this:

  1. No separador Configurar, desafie a respetiva função de registo para Desligar.In the Configure tab, set the respective logging feature to Off. Guarde a sua configuração.Save your setting.
  2. Volte a ativar o registo na bolha da conta de armazenamento.Enable logging to the storage account blob again. Guarde a sua configuração.Save your setting.

Selecione o Nível, ou o nível de detalhes para registar.Select the Level, or the level of details to log. A tabela a seguir mostra as categorias de registo incluídas em cada nível:The following table shows the log categories included in each level:

NívelLevel Categorias incluídasIncluded categories
DesativadoDisabled NenhumaNone
ErroError Erro, CríticoError, Critical
AvisoWarning Aviso, Erro, CríticoWarning, Error, Critical
InformaçõesInformation Informação, Aviso, Erro, CríticoInfo, Warning, Error, Critical
VerbosoVerbose Trace, Debug, Info, Warning, Error, Critical (todas as categorias)Trace, Debug, Info, Warning, Error, Critical (all categories)

Quando terminar, selecione Save.When finished, select Save.

Ativar o registo de aplicações (Linux/Contentor)Enable application logging (Linux/Container)

Para ativar o registo de aplicações para apps Linux ou aplicações personalizadas de contentores no portal Azure,navegue para a sua aplicação e selecione registos do Serviço de Aplicações.To enable application logging for Linux apps or custom container apps in the Azure portal, navigate to your app and select App Service logs.

Na sessão de registo de aplicações, selecione o Sistema de Ficheiros.In Application logging, select File System.

Na Quota (MB), especifique a quota de disco para os registos de aplicação.In Quota (MB), specify the disk quota for the application logs. No Período de Retenção (Dias), desa um número de dias os registos devem ser mantidos.In Retention Period (Days), set the number of days the logs should be retained.

Quando terminar, selecione Save.When finished, select Save.

Ativar a sessão de registo do servidor webEnable web server logging

Para ativar o registo de servidores web para aplicações do Windows no portal Azure,navegue para a sua aplicação e selecione registos do Serviço de Aplicações.To enable web server logging for Windows apps in the Azure portal, navigate to your app and select App Service logs.

Para fazer login no servidor Web, selecione Armazenamento para armazenar registos no armazenamento de bolhas ou sistema de ficheiros para armazenar registos no sistema de ficheiros do Serviço de Aplicações.For Web server logging, select Storage to store logs on blob storage, or File System to store logs on the App Service file system.

No Período de Retenção (Dias), desa um número de dias os registos devem ser mantidos.In Retention Period (Days), set the number of days the logs should be retained.

Nota

Se regenerar as teclas de acesso da sua conta de armazenamento,tem de redefinir a respetiva configuração de registo para utilizar as teclas atualizadas.If you regenerate your storage account's access keys, you must reset the respective logging configuration to use the updated keys. Para efetuar este procedimento:To do this:

  1. No separador Configurar, desafie a respetiva função de registo para Desligar.In the Configure tab, set the respective logging feature to Off. Guarde a sua configuração.Save your setting.
  2. Volte a ativar o registo na bolha da conta de armazenamento.Enable logging to the storage account blob again. Guarde a sua configuração.Save your setting.

Quando terminar, selecione Save.When finished, select Save.

Registar erros detalhadosLog detailed errors

Para guardar a página de erro ou rastrear o rastreio de pedidos falhados para aplicações do Windows no portal Azure,navegue para a sua aplicação e selecione registos do Serviço de Aplicações.To save the error page or failed request tracing for Windows apps in the Azure portal, navigate to your app and select App Service logs.

Em Registo de Erros Detalhado ou Rastreio de Pedido Falhado, selecione One, em seguida, selecione Guardar.Under Detailed Error Logging or Failed Request Tracing, select On, then select Save.

Ambos os tipos de registos são armazenados no sistema de ficheiros Do Serviço de Aplicações.Both types of logs are stored in the App Service file system. São retidos até 50 erros (ficheiros/pastas).Up to 50 errors (files/folders) are retained. Quando o número de ficheiros HTML exceder 50, os 26 erros mais antigos são automaticamente eliminados.When the number of HTML files exceed 50, the oldest 26 errors are automatically deleted.

Adicionar mensagens de registo no códigoAdd log messages in code

No seu código de aplicação, utiliza as instalações habituais de registo para enviar mensagens de registo para os registos de aplicações.In your application code, you use the usual logging facilities to send log messages to the application logs. Por exemplo:For example:

Transmitir registosStream logs

Antes de transmitir os registos em tempo real, ative o tipo de registo que deseja.Before you stream logs in real time, enable the log type that you want. Qualquer informação escrita para ficheiros que terminam em .txt, .log ou .htm que sejam armazenados no diretório /LogFiles (d:/home/logfiles) é transmitido pelo Serviço de Aplicações.Any information written to files ending in .txt, .log, or .htm that are stored in the /LogFiles directory (d:/home/logfiles) is streamed by App Service.

Nota

Alguns tipos de buffer de registo escrevem no ficheiro de registo, o que pode resultar em eventos fora de ordem no fluxo.Some types of logging buffer write to the log file, which can result in out of order events in the stream. Por exemplo, um registo de registo de aplicação que ocorre quando um utilizador visita uma página pode ser apresentado no fluxo antes do registo HTTP correspondente para o pedido de página.For example, an application log entry that occurs when a user visits a page may be displayed in the stream before the corresponding HTTP log entry for the page request.

No portal AzureIn Azure portal

Para transmitir registos no portal Azure,navegue para a sua aplicação e selecione Log stream.To stream logs in the Azure portal, navigate to your app and select Log stream.

Em Cloud ShellIn Cloud Shell

Para transmitir registos em direto na Cloud Shell,utilize o seguinte comando:To stream logs live in Cloud Shell, use the following command:

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

Para filtrar eventos específicos, tais como erros, utilize o parâmetro --Filtro.To filter specific events, such as errors, use the --Filter parameter. Por exemplo:For example:

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

Para filtrar tipos específicos de registo, tais como HTTP, utilize o parâmetro --Caminho.To filter specific log types, such as HTTP, use the --Path parameter. Por exemplo:For example:

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

No terminal localIn local terminal

Para transmitir registos na consola local, instale o Azure CLI e inicie sessão na sua conta.To stream logs in the local console, install Azure CLI and sign in to your account. Uma vez assinado, seguiu as instruções para Cloud ShellOnce signed in, followed the instructions for Cloud Shell

Aceder a ficheiros de registosAccess log files

Se configurar a opção Azure Storage blobs para um tipo de registo, precisa de uma ferramenta cliente que funcione com o Azure Storage.If you configure the Azure Storage blobs option for a log type, you need a client tool that works with Azure Storage. Para mais informações, consulte as Ferramentas do Cliente de Armazenamento Azure.For more information, see Azure Storage Client Tools.

Para registos armazenados no sistema de ficheiros Do Serviço de Aplicações, a forma mais fácil é descarregar o ficheiro ZIP no navegador em:For logs stored in the App Service file system, the easiest way is to download the ZIP file in the browser at:

  • Aplicativos Linux/contentor:https://<app-name>.scm.azurewebsites.net/api/logs/docker/zipLinux/container apps: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Aplicativos windows:https://<app-name>.scm.azurewebsites.net/api/dumpWindows apps: https://<app-name>.scm.azurewebsites.net/api/dump

Para aplicações Linux/contentor, o ficheiro ZIP contém registos de saída da consola tanto para o anfitrião do estivador como para o recipiente do estivador.For Linux/container apps, the ZIP file contains console output logs for both the docker host and the docker container. Para uma aplicação de escala, o ficheiro ZIP contém um conjunto de registos para cada instância.For a scaled-out app, the ZIP file contains one set of logs for each instance. No sistema de ficheiros Do Serviço de Aplicações, estes ficheiros de registo são o conteúdo do diretório /home/LogFiles.In the App Service file system, these log files are the contents of the /home/LogFiles directory.

Para aplicações windows, o ficheiro ZIP contém o conteúdo do diretório D:\Home\LogFiles no sistema de ficheiros Do Serviço de Aplicações.For Windows apps, the ZIP file contains the contents of the D:\Home\LogFiles directory in the App Service file system. Tem a seguinte estrutura:It has the following structure:

Tipo de registoLog type DiretórioDirectory DescriçãoDescription
Registos de aplicaçõesApplication logs /Registos/Aplicação//LogFiles/Application/ Contém um ou mais ficheiros de texto.Contains one or more text files. O formato das mensagens de registo depende do fornecedor de registo que utiliza.The format of the log messages depends on the logging provider you use.
Rastreios de pedidos falhadosFailed Request Traces /LogFiles/W3SVC########## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ##/LogFiles/W3SVC#########/ Contém ficheiros XML e um ficheiro XSL.Contains XML files, and an XSL file. Pode ver os ficheiros XML formatados no navegador.You can view the formatted XML files in the browser.
Registos de erros detalhadosDetailed Error Logs /LogFiles/DetalhadosErrors//LogFiles/DetailedErrors/ Contém ficheiros de erro HTM.Contains HTM error files. Pode ver os ficheiros HTM no navegador.You can view the HTM files in the browser.
Outra forma de ver os vestígios de pedidos falhados é navegar para a sua página de aplicações no portal.Another way to view the failed request traces is to navigate to your app page in the portal. A partir do menu esquerdo, selecione Diagnosticar e resolver problemas, em seguida, procure por Registos de Rastreio de Pedidos Falhados, em seguida, clique no ícone para navegar e ver o traço que deseja.From the left menu, select Diagnose and solve problems, then search for Failed Request Tracing Logs, then click the icon to browse and view the trace you want.
Registos de servidor webWeb Server Logs /LogFiles/http/RawLogs//LogFiles/http/RawLogs/ Contém ficheiros de texto formatados utilizando o formato de ficheiro de registo estendido W3C.Contains text files formatted using the W3C extended log file format. Estas informações podem ser lidas usando um editor de texto ou um utilitário como Log Parser.This information can be read using a text editor or a utility like Log Parser.
O Serviço de Aplicações não suporta, s-computername s-ip ou cs-version campos.App Service doesn't support the s-computername, s-ip, or cs-version fields.
Registos de implantaçãoDeployment logs /LogFiles/Git/ e /deployments//LogFiles/Git/ and /deployments/ Conter registos gerados pelos processos de implementação internos, bem como registos para implementações de Git.Contain logs generated by the internal deployment processes, as well as logs for Git deployments.

Enviar registos para Azure Monitor (pré-visualização)Send logs to Azure Monitor (preview)

Com a nova integração do Azure Monitor,pode criar Definições de Diagnóstico (pré-visualização) para enviar registos para Contas de Armazenamento, Centros de Eventos e Analíticos de Registo.With the new Azure Monitor integration, you can create Diagnostic Settings (preview) to send logs to Storage Accounts, Event Hubs and Log Analytics.

Definições de diagnóstico (pré-visualização)Diagnostic Settings (preview)

Tipos de registo suportadosSupported log types

A tabela a seguir mostra os tipos e descrições de registos suportados:The following table shows the supported log types and descriptions:

Tipo de registoLog type Suporte ao WindowsWindows support Suporte Linux (Docker)Linux (Docker) support DescriçãoDescription
AppServiceConsoleLogsAppServiceConsoleLogs TBATBA SimYes Saída padrão e erro padrãoStandard output and standard error
AppServiceHTTPLogsAppServiceHTTPLogs SimYes SimYes Registos de servidores webWeb server logs
AppServiceEnvironmentPlatformLogsAppServiceEnvironmentPlatformLogs SimYes SimYes Ambiente de Serviço de Aplicações: escala, alterações de configuração e registos de estadoApp Service Environment: scaling, configuration changes, and status logs
AppServiceAuditLogsAppServiceAuditLogs SimYes SimYes Atividade de login via FTP e KuduLogin activity via FTP and Kudu
AppServiceFileAuditLogsAppServiceFileAuditLogs SimYes TBDTBD Alterações de ficheiros via FTP e KuduFile changes via FTP and Kudu
AppServiceAppLogsAppServiceAppLogs TBATBA Java SE & TomcatJava SE & Tomcat Registos de aplicaçõesApplication logs
AppServiceIPSecAuditLogsAppServiceIPSecAuditLogs SimYes SimYes Pedidos de Regras de IPRequests from IP Rules
AppServicePlatformLogsAppServicePlatformLogs TBATBA SimYes Troncos de contentoresContainer logs

Próximos passosNext steps