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

Questo video illustra come abilitare la registrazione diagnostica per le app.

I passaggi del video sono descritti anche nelle sezioni seguenti.

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 Titolo Descrizione
Registrazione di applicazioni Windows, Linux File system del servizio app 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, Informativo, Debug e Traccia. È possibile selezionare il modo in cui si vuole che la registrazione sia impostata impostando il livello di gravità quando si abilita la registrazione delle applicazioni.
Registrazione server Web Windows File system del servizio app 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 File system del servizio app 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 in produzione, ma il servizio app può 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 File system del servizio app Informazioni di traccia dettagliate sulle richieste non riuscite, inclusa una traccia dei componenti IIS usati per elaborare la richieste 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 File system del servizio app Registra quando si pubblica il 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.

Quando vengono archiviati nel file system servizio app, i log sono soggetti all'archiviazione disponibile per il piano tariffario (vedere limiti servizio app).

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 applicazioni (Windows)

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

Selezionare On per Registrazione applicazioni (file system) o Registrazione applicazione (BLOB) o entrambe le opzioni.

L'opzione File system è destinata al debug temporaneo e si disattiva dopo 12 ore. L'opzione BLOB è destinata alla registrazione a lungo termine e richiede un contenitore di archiviazione BLOB in cui scrivere i registri. 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 (InstanceId), l'ID del thread (Tid) e un timestamp più granulare (EventTickCount).

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. A questo scopo, è necessario:

  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 illustra le categorie di log incluse in ogni livello:

Livello Categorie incluse
Disabilitato None
Errore Errore, Errore critico
Avvertenza Avviso, Errore, Errore critico
Informazioni Informazioni, Avviso, Errore, Errore critico
Verbose Analisi, Debug, Informazioni, Avviso, Errore, Errore critico (tutte le categorie)

Al termine, seleziona Salva.

Nota

Se si scrivono log in BLOB, i criteri di conservazione non si applicano più 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 applicazioni (Linux/contenitori)

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 registri dell'applicazione. In Periodo di conservazione (giorni) impostare il numero di giorni per cui devono essere mantenuti i registri.

Al termine, seleziona Salva.

Abilitare la registrazione del server Web

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

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

In Periodo di conservazione (giorni) impostare il numero di giorni per cui devono essere mantenuti i registri.

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. A questo scopo, è necessario:

  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, seleziona Salva.

Nota

Se si scrivono log in BLOB, i criteri di conservazione non si applicano più 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 gli errori dettagliati

Per salvare la pagina di errore o la traccia delle richieste non riuscite per le app di Windows 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à Di traccia delle 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:

Trasmettere i log

Prima di trasmettere i log in tempo reale, abilitare il tipo di log desiderato. Tutte le informazioni scritte nell'output della console o nei file che terminano in .txt, .log o .htm archiviati nella directory /home/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 l'accesso, seguire le istruzioni per Cloud Shell

Accedere ai file di log

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

Per i log archiviati nel file system del servizio app, il modo più semplice consiste nello scaricare il file ZIP nel browser in:

  • Contenitori Linux/personalizzati: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • App Windows: 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 le app con scale-out, il file ZIP contiene un set di log per ogni istanza. Nel file system del servizio app questi file di log sono i contenuti della directory /home/LogFiles.

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

Tipo di registro 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 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 Diagnostica 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.

Impostazioni di diagnostica

Tipi di log supportati

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

Nome log Tipo di registro Windows Contenitore di Windows Linux Contenitore Linux Descrizione
log della console servizio app AppServiceConsoleLogs Java edizione Standard e Tomcat Output standard e errore standard 3
Log HTTP AppServiceHTTPLogs Log del server Web
log della piattaforma ambiente del servizio app AppServiceEnvironmentPlatformLogs N/D ambiente del servizio app: ridimensionamento, modifiche alla configurazione e log di stato
Accedere ai log di controllo AppServiceAuditLogs Attività di accesso tramite FTP e Kudu
Log di controllo delle modifiche al contenuto del sito AppServiceFileAuditLogs Da definire Da definire Modifiche ai file apportate al contenuto del sito; disponibile solo per il livello Premium e superiore
log applicazioni servizio app AppServiceAppLogs ASP.NET, .NET Core e Tomcat 1 ASP.NET e Tomcat 1 .NET Core, Java, edizione Standard e Tomcat Beati immagini 2 Java edizione Standard & Tomcat Benedette Immagini 2 Log applicazioni 3
Log di controllo IPSecurity AppServiceIPSecAuditLogs Richieste da regole IP
log della piattaforma servizio app AppServicePlatformLogs Da definire Log delle operazioni del contenitore
Log di controllo dell'antivirus dei report AppServiceAntivirusScanAuditLogs 4 Log di analisi antivirus con Microsoft Defender per il cloud; disponibile solo per il livello 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 limite di registrazione corrente è impostato su 100 log al minuto.

4 Il tipo di log AppServiceAntivirusScanAuditLogs è ancora in anteprima

Considerazioni sulla rete

Per le restrizioni di diagnostica Impostazioni, vedere la documentazione ufficiale relativa alla diagnostica Impostazioni relativa ai limiti di destinazione.

Passaggi successivi