Abilitare la registrazione diagnostica per le app nel Servizio app di Azure

Panoramica

Azure offre diagnostica integrata per facilitare il debug di un'app del servizio app. In questo articolo viene descritto come abilitare la registrazione diagnostica e aggiungere strumentazione all'applicazione. Viene anche descritto come accedere alle informazioni registrate da Azure.

L'articolo illustra anche l'uso del portale di Azure e dell'interfaccia della riga di comando di Azure per elaborare i log di diagnostica. Per informazioni sull'elaborazione dei log di diagnostica in Visual Studio vedere Risoluzione dei problemi di Azure in Visual Studio.

Nota

Oltre alle istruzioni di registrazione in questo articolo, è disponibile una nuova funzionalità di registrazione integrata con Monitoraggio di Azure. Altre informazioni su questa funzionalità sono disponibili nella sezione Inviare log a Monitoraggio di Azure .

Tipo Piattaforma Posizione Descrizione
Registrazione di applicazioni Windows, Linux servizio app file system e/o BLOB di Archiviazione di Azure Registra i messaggi generati dal codice dell'applicazione. I messaggi possono essere generati dal framework Web scelto o dal codice dell'applicazione direttamente usando il modello di registrazione standard del linguaggio. A ogni messaggio viene assegnata una delle categorie seguenti: Critico, Errore, Avviso, Info, Debug e Traccia. È possibile selezionare il livello di gravità desiderato impostando il livello di gravità quando si abilita la registrazione delle applicazioni.
Registrazione del server Web Windows servizio app file system o BLOB di Archiviazione di Azure Dati di richiesta HTTP non elaborati nel formato di file di log esteso W3C. Ogni messaggio di log include dati come il metodo HTTP, l'URI della risorsa, l'IP client, la porta client, l'agente utente, il codice di risposta e così via.
Messaggi di errore dettagliati Windows servizio app file system Copie delle pagine di errore.htm che sarebbero state inviate al browser client. Per motivi di sicurezza, le pagine di errore dettagliate non devono essere inviate ai client nell'ambiente di produzione, ma servizio app possono salvare la pagina di errore ogni volta che si verifica un errore dell'applicazione con codice HTTP 400 o superiore. La pagina può contenere informazioni che consentono di determinare il motivo per cui il server restituisce il codice di errore.
Traccia delle richieste non riuscite Windows servizio app file system Informazioni dettagliate sulla traccia sulle richieste non riuscite, inclusa una traccia dei componenti IIS usati per elaborare la richiesta e il tempo impiegato in ogni componente. È utile per migliorare le prestazioni del sito o isolare uno specifico errore HTTP. Viene generata una cartella per ogni richiesta non riuscita, che contiene il file di log XML e il foglio di stile XSL con cui visualizzare il file di log.
Registrazione della distribuzione Windows, Linux servizio app file system Registra quando si pubblica contenuto in un'app. La registrazione della distribuzione viene eseguita automaticamente e non sono disponibili impostazioni configurabili per la registrazione della distribuzione. Consente di determinare il motivo per cui una distribuzione non è riuscita. Ad esempio, se si usa uno script di distribuzione personalizzato, è possibile usare la registrazione della distribuzione per determinare il motivo per cui lo script ha esito negativo.

Nota

servizio app offre uno strumento di diagnostica interattivo dedicato che consente di risolvere i problemi dell'applicazione. Per altre informazioni, vedere Panoramica approfondita della diagnostica del Servizio app di Azure.

È anche possibile usare altri servizi di Azure per migliorare le funzionalità di registrazione e monitoraggio dell'app, ad esempio Monitoraggio di Azure.

Abilitare la registrazione delle applicazioni (Windows)

Per abilitare la registrazione delle applicazioni per Windows app nel portale di Azure, passare all'app e selezionare servizio app log.

Selezionare per Registrazione applicazioni (file system) o Registrazione applicazioni (BLOB) o entrambi.

L'opzione Filesystem è destinata a scopi di debug temporanei e si disattiva in 12 ore. L'opzione BLOB è per la registrazione a lungo termine e richiede un contenitore di archiviazione BLOB in cui scrivere i log. L'opzione BLOB include anche informazioni aggiuntive nei messaggi di log, ad esempio l'ID dell'istanza della macchina virtuale di origine del messaggio di log (), l'ID del thread (InstanceIdTid) e un timestamp più granulare (EventTickCount).

Nota

Se l'account Archiviazione di Azure è protetto dalle regole del firewall, vedere Considerazioni sulla rete.

Nota

Attualmente solo i log applicazioni .NET possono essere scritti nell'archiviazione BLOB. Java, PHP, Node.js, i log applicazioni Python possono essere archiviati solo nel file system servizio app (senza modifiche al codice per scrivere i log nell'archiviazione esterna).

Inoltre, se si rigenerano le chiavi di accesso dell'account di archiviazione, è necessario reimpostare la rispettiva configurazione di registrazione per usare le chiavi di accesso aggiornate. Per eseguire questa operazione:

  1. Nella scheda Configura impostare la funzionalità di registrazione corrispondente su Off. Salvare l’impostazione.
  2. Abilitare di nuovo la registrazione al BLOB dell'account di archiviazione. Salvare l’impostazione.

Selezionare il livello o il livello di dettagli da registrare. La tabella seguente mostra le categorie di log incluse in ogni livello:

Livello Categorie incluse
Disabilitato Nessuno
Error (Errore) (Error (Errore)e) Errore, Errore critico
Avviso Avviso, Errore, Errore critico
Informazioni Informazioni, Avviso, Errore, Errore critico
Verbose Analisi, Debug, Informazioni, Avviso, Errore, Errore critico (tutte le categorie)

Al termine, selezionare Salva.

Nota

Se si scrivono log in BLOB, i criteri di conservazione non vengono più applicati se si elimina l'app ma si mantengono i log nei BLOB. Per altre informazioni, vedere Costi che potrebbero accumularsi dopo l'eliminazione delle risorse.

Abilitare la registrazione delle applicazioni (Linux/Contenitore)

Per abilitare la registrazione delle applicazioni per app Linux o contenitori personalizzati nel portale di Azure, passare all'app e selezionare servizio app log.

In Registrazione applicazioni selezionare File system.

In Quota (MB)specificare la quota del disco per i log applicazioni. In Periodo di conservazione (giorni) impostare il numero di giorni in cui devono essere conservati i log.

Al termine, selezionare Salva.

Abilitazione della registrazione del server Web

Per abilitare la registrazione del server Web per le app Windows nel portale di Azure, passare all'app e selezionare servizio app log.

Per Registrazione server Web selezionare Archiviazione per archiviare i log nell'archivio BLOB o File System per archiviare i log nel file system servizio app.

Nota

Se l'account Archiviazione di Azure è protetto dalle regole del firewall, vedere Considerazioni sulla rete.

In Periodo di conservazione (giorni) impostare il numero di giorni in cui devono essere conservati i log.

Nota

Se si rigenerano le chiavi di accesso dell'account di archiviazione, è necessario reimpostare la configurazione di registrazione corrispondente per l'uso delle chiavi aggiornate. Per eseguire questa operazione:

  1. Nella scheda Configura impostare la funzionalità di registrazione corrispondente su Off. Salvare l’impostazione.
  2. Abilitare di nuovo la registrazione al BLOB dell'account di archiviazione. Salvare l’impostazione.

Al termine, selezionare Salva.

Nota

Se si scrivono log in BLOB, i criteri di conservazione non vengono più applicati se si elimina l'app ma si mantengono i log nei BLOB. Per altre informazioni, vedere Costi che potrebbero accumularsi dopo l'eliminazione delle risorse.

Registrare errori dettagliati

Per salvare la pagina di errore o la traccia delle richieste non riuscite per Windows app nel portale di Azure, passare all'app e selezionare servizio app log.

In Registrazione dettagliata degli errori o Traccia richieste non riuscite selezionare , quindi selezionare Salva.

Entrambi i tipi di log vengono archiviati nel file system servizio app. Vengono conservati fino a 50 errori (file/cartelle). Quando il numero di file HTML supera 50, i file di errore meno recenti vengono eliminati automaticamente.

Per impostazione predefinita, la funzionalità Traccia richieste non riuscite acquisisce un log di richieste non riuscite con codici di stato HTTP compresi tra 400 e 600. Per specificare regole personalizzate, è possibile eseguire l'override della <traceFailedRequests> sezione nel file web.config .

Aggiungere messaggi di log nel codice

Nel codice dell'applicazione si usano le normali funzionalità di registrazione per inviare messaggi di log ai log dell'applicazione. Ad esempio:

Eseguire lo streaming dei log

Prima di trasmettere i log in tempo reale, abilitare il tipo di log desiderato. Tutte le informazioni scritte nei file che terminano in .txt, log o .htm archiviate nella directory /LogFiles (d:/home/logfiles) vengono trasmessi da servizio app.

Nota

Alcuni tipi di buffer di registrazione scrivono nel file di log, producendo nel caso eventi di "fuori servizio" nel flusso. Ad esempio, una voce del log di applicazione che si verifica quando un utente visita una pagina può essere visualizzata nel flusso prima della corrispondente voce di log HTTP per la richiesta della pagina.

Nel portale di Azure

Per trasmettere i log nel portale di Azure, passare all'app e selezionare Flusso di log.

In Cloud Shell

Per trasmettere i log live in Cloud Shell, usare il comando seguente:

Importante

Questo comando potrebbe non funzionare con le app Web ospitate in un piano di servizio app Linux.

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

Per filtrare tipi di log specifici, ad esempio HTTP, usare il parametro --Provider . Ad esempio:

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

Nel terminale locale

Per trasmettere i log nella console locale, installare l'interfaccia della riga di comando di Azure e accedere all'account. Dopo aver eseguito l'accesso, seguire le istruzioni per Cloud Shell

Accedere ai file di log

Se si configura l'opzione ARCHIVIAZIONE DI AZURE BLOB per un tipo di log, è necessario uno strumento client che funzioni con Archiviazione di Azure. Per altre informazioni, vedere Archiviazione di Azure Strumenti client.

Per i log archiviati nel file system servizio app, il modo più semplice consiste nel scaricare il file ZIP nel browser all'indirizzo:

  • Contenitori Linux/personalizzati: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Windows app:https://<app-name>.scm.azurewebsites.net/api/dump

Per i contenitori Linux/personalizzati, il file ZIP contiene i log di output della console sia per l'host Docker che per il contenitore Docker. Per un'app con scalabilità orizzontale, il file ZIP contiene un set di log per ogni istanza. Nel file system servizio app questi file di log sono il contenuto della directory /home/LogFiles.

Per Windows app, il file ZIP contiene il contenuto della directory D:\Home\LogFiles nel file system servizio app. Presenta la struttura seguente:

Tipo di log Directory Descrizione
Log applicazioni /LogFiles/Application/ Contiene uno o più file di testo. Il formato dei messaggi di log dipende dal provider di registrazione usato.
Tracce delle richieste non riuscite /LogFiles/W3SVC######/ Contiene file XML e un file XSL. È possibile visualizzare i file XML formattati nel browser.
Log degli errori dettagliati /LogFiles/DetailedErrors/ Contiene i file di errore HTM. È possibile visualizzare i file HTM nel browser.
Un altro modo per visualizzare le tracce delle richieste non riuscite consiste nel passare alla pagina dell'app nel portale. Dal menu a sinistra selezionare Diagnosticare e risolvere i problemi, quindi cercare Log di traccia delle richieste non riuscite, quindi fare clic sull'icona per esplorare e visualizzare la traccia desiderata.
Log del server Web /LogFiles/http/RawLogs/ Contiene file di testo formattati usando il formato di file di log esteso W3C. Queste informazioni possono essere lette usando un editor di testo o un'utilità come Log Parser.
servizio app non supporta i s-computernamecampi , s-ipo cs-version .
Log di distribuzione /LogFiles/Git/ e /deployments/ Contengono i log generati dai processi di distribuzione interna, nonché i log per le distribuzioni Git.

Inviare log a Monitoraggio di Azure

Con la nuova integrazione di Monitoraggio di Azure è possibile creare Impostazioni di diagnostica per inviare log a account Archiviazione, Hub eventi e Log Analytics.

Diagnostic Settings

Tipi di log supportati

La tabella seguente illustra i tipi di log e le descrizioni supportati:

Tipo di log Windows Contenitore di Windows Linux Contenitore Linux Descrizione
AppServiceConsoleLogs Java edizione Standard & Tomcat Output standard ed errore standard
AppServiceHTTPLogs Web Server Logs
AppServiceEnvironmentPlatformLogs N/D ambiente del servizio app: ridimensionamento, modifiche alla configurazione e log di stato
AppServiceAuditLogs Attività di accesso tramite FTP e Kudu
AppServiceFileAuditLogs TBA TBA Modifiche ai file apportate al contenuto del sito; disponibile solo per il livello Premium e superiore
AppServiceAppLogs & ASP.NET Tomcat 1 & ASP.NET Tomcat 1 Java edizione Standard & Immagini benedette Tomcat 2 Java edizione Standard & Immagini benedette Tomcat 2 Log applicazioni
AppServiceIPSecAuditLogs Richieste da regole IP
AppServicePlatformLogs TBA Log delle operazioni del contenitore
AppServiceAntivirusScanAuditLogs 3 Log di analisi antivirus con Microsoft Defender for Cloud; disponibile solo per il livello di Premium

1 Per le app Tomcat, aggiungere TOMCAT_USE_STARTUP_BAT alle impostazioni dell'app e impostarla su false o 0. Deve trovarsi nella versione più recente di Tomcat e usare java.util.logging.

2 Per le app Java edizione Standard, aggiungere WEBSITE_AZMON_PREVIEW_ENABLED alle impostazioni dell'app e impostarla su true o su 1.

3 Il tipo di log AppServiceAntivirusScanAuditLogs è ancora in anteprima

Considerazioni sulla rete

Se si protegge l'account Archiviazione di Azure solo consentendo le reti selezionate, può ricevere i log da servizio app solo se sono vere entrambe le condizioni seguenti:

Passaggi successivi