Abilitare la registrazione diagnostica per le app nel Servizio app di Azure
Nota
A partire dal 1° giugno 2024, tutte le app del servizio app appena create avranno la possibilità di generare un nome host predefinito univoco usando la convenzione di denominazione <app-name>-<random-hash>.<region>.azurewebsites.net
. I nomi delle app esistenti rimarranno invariati.
Esempio: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Per altri dettagli, fare riferimento a Nome host predefinito univoco per la risorsa del servizio app.
Questo video mostra come abilitare la registrazione di 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, è anche possibile usare la funzionalità di registrazione integrata di Monitoraggio di Azure. Sono disponibili altre informazioni su questa funzionalità alla sezione Inviare log a Monitoraggio di Azure.
Type | Piattaforma | Percorso di archiviazione log | 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 livello di dettaglio della registrazione impostando il livello di gravità quando si abilita la registrazione dell'applicazione. |
Registrazione server Web | Windows | File system del servizio app o BLOB di Archiviazione di Azure | Dati richiesta HTTP non elaborati nel formato file di log esteso W3C. Ogni messaggio di log include dati come metodo HTTP, URI risorsa, IP client, porta client, agente utente, codice 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 nell'ambiente di 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 versione successiva. La pagina può contenere informazioni che aiutano a 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. Queste informazioni sono utili se si desidera migliorare le prestazioni del sito o isolare un errore HTTP specifico. Viene generata una cartella per ogni richiesta non riuscita. La cartella 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 | Log per quando si pubblicano contenuti in un'app. La registrazione della distribuzione viene eseguita automaticamente e non sono disponibili impostazioni configurabili per la registrazione della distribuzione. Aiuta a determinare perché una distribuzione non è andata a buon fine. Ad esempio, se si usa uno script di distribuzione personalizzata, si potrebbe usare la registrazione di distribuzione per determinare il motivo per cui lo script non è riuscito. |
Quando vengono memorizzati nel file system di servizio app, i log sono soggetti all'archiviazione disponibile per il livello di prezzo (vedere Limiti del servizio app).
Nota
Servizio app fornisce uno strumento di diagnostica dedicato interattivo per agevolare la risoluzione dei problemi delle applicazioni. Per altre informazioni, vedere Panoramica approfondita della diagnostica del Servizio app di Azure.
Inoltre, è possibile usare gli altri servizi di Azure per migliorare le funzionalità di registrazione e monitoraggio dell'app, come Monitoraggio di Azure.
Abilitare la registrazione applicazioni (Windows)
Per abilitare la registrazione dell'applicazione per le app Windows nel portale di Azure, passare all'app e selezionare Log del servizio app.
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 log, come l'ID dell'istanza della VM di origine dei messaggi log (InstanceId
), l'ID thread (Tid
) e un timestamp più granulare (EventTickCount
).
Nota
Attualmente solo i log applicazioni .NET possono essere scritti nell'archiviazione BLOB. I registri applicazioni Java, PHP, Node.js e Python possono essere archiviati solo nel file system del servizio app (senza modifiche al codice per la scrittura di log in risorse di archiviazione esterne).
Inoltre, 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:
- Nella scheda Configura impostare la funzionalità di registrazione corrispondente su Off. Salvare l’impostazione.
- Abilitare di nuovo la registrazione al BLOB dell'account di archiviazione. Salvare l’impostazione.
Selezionare il Livello o il livello dei dettagli da registrare. La tabella seguente elenca le categorie dei log incluse in ogni livello:
Level | 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 nei blob, il criterio di conservazione non si applica più se si elimina l'app, ma mantiene i log nei blob. Per altre informazioni, vedere Costi che potrebbero maturare dopo l'eliminazione delle risorse.
Abilitare la registrazione applicazioni (Linux/contenitori)
Per abilitare la registrazione dell'applicazione per le app Linux o i contenitori personalizzati nel portale di Azure, passare all'app e selezionare Log del servizio app.
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 dei server web per le app Windows nel portale di Azure, passare all'app e selezionare Log del servizio app.
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:
- Nella scheda Configura impostare la funzionalità di registrazione corrispondente su Off. Salvare l’impostazione.
- Abilitare di nuovo la registrazione al BLOB dell'account di archiviazione. Salvare l’impostazione.
Al termine, seleziona Salva.
Nota
Se si scrivono log nei blob, il criterio di conservazione non si applica più se si elimina l'app, ma mantiene i log nei blob. Per altre informazioni, vedere Costi che potrebbero maturare dopo l'eliminazione delle risorse.
Errori dettagliati log
Per salvare la pagina di errore o la traccia delle richieste non riuscite per le app Windows nel portale di Azure, passare all'app e selezionare Log del servizio app.
In Registrazione degli errori dettagliata o Traccia delle richieste non riuscite, selezionare On, e quindi Salva.
Entrambi i tipi di log vengono memorizzati nel file system del servizio app. Vengono conservati fino a 50 errori (file o cartelle). Quando il numero di file HTML supera 50, i file di errore più vecchi vengono eliminati automaticamente.
La funzionalità di traccia delle richieste non riuscite acquisisce per impostazione predefinita un log delle richieste non riuscite con codici stato HTTP tra 400 e 600. Per specificare regole personalizzate, è possibile eseguire l'override della sezione <traceFailedRequests>
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:
Le applicazioni ASP.NET possono utilizzare la classe System.Diagnostics.Trace per registrare le informazioni nel log di diagnostica applicazioni. Ad esempio:
System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
Per impostazione predefinita, ASP.NET Core usa il provider di registrazione Microsoft.Extensions.Logging.AzureAppServices. Per altre informazioni, vedere Registrazione in ASP.NET Core- Registrazione in Azure. Per altre informazioni sulla registrazione dell'SDK Processi Web di Azure, vedere Attività iniziali con l'SDK Processi Web di Azure.
Le applicazioni Python possono usare il pacchetto OpenCensus per inviare i log al log di diagnostica dell'applicazione.
Trasmettere i log
Prima di trasmettere i log in tempo reale, abilitare il tipo di log desiderato. Eventuali informazioni scritte nell'output della console o file che terminano con .txt, .log o .htm memorizzati nella directory /home/LogFiles (D:\home\LogFiles) vengono trasmesse dal servizio app.
Nota
Alcuni tipi di scrittura del buffer di registrazione nel file di log, che possono comportare eventi visualizzati nell'ordine non corretto 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 Streaming di log.
In Cloud Shell
Per trasmettere 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 log nella console locale, installare l'interfaccia della riga di comando di Azure e accedere al proprio account. Dopo aver eseguito 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 Strumenti client di Archiviazione di Azure.
Per i log archiviati nel file system del servizio app, il modo più semplice per accedere ai file consiste nel scaricare il file ZIP nel browser all'indirizzo:
- 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 per l'host Docker e 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. I log di distribuzione vengono memorizzati in /site/deployments/.
Per le app Windows, il file ZIP contiene i contenuti della directory D:\Home\LogFiles nel file system del servizio app. Presenta la struttura seguente:
Tipo di registro | Directory | Descrizione |
---|---|---|
Registri applicazioni | /LogFiles/Application/ | Contiene uno o più file di testo. Il formato dei messaggi log dipende dal provider di registrazione in uso. |
Tracce delle richieste non riuscite | /LogFiles/W3SVC#########/ | Contiene file XML e un file XSL. È possibile visualizzare i file XML formattati nel browser. |
Registrazione degli errori dettagliata | /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 è passare alla pagina dell'app nel portale. Dal menu di sinistra, selezionare Diagnosticare e risolvere i problemi, cercare Log di traccia delle richieste non riuscite, e quindi fare clic sull'icona per esplorare e visualizzare la traccia desiderata. |
Log del server Web | /LogFiles/http/RawLogs/ | Contiene file di testo formattati che usano il formato di file di log esteso W3C. È possibile leggere questi file usando un editor di testo o un'utilità come Log Parser. Servizio app non supporta i campi s-computername , s-ip o cs-version . |
Log di distribuzione | /LogFiles/Git/ e /deployments/ | Contiene i log generati dai processi di distribuzione interna, come anche i log per le distribuzioni Git. |
Inviare log a Monitoraggio di Azure
Con l'integrazione di Monitoraggio di Azure, è ora possibile creare le impostazioni di diagnostica per inviare i log agli account di archiviazione, agli hub eventi e a Log Analytics. Quando si aggiunge un'impostazione di diagnostica, servizio app aggiunge impostazioni dell'app all'app, attivando un riavvio dell'app.
Tipi di log supportati
Per un elenco dei tipi di log supportati e delle relative descrizioni, vedere Log delle risorse supportati per Microsoft.Web.
Considerazioni sulla rete
Per le limitazioni delle impostazioni di diagnostica, fare riferimento alla documentazione ufficiale sulle impostazioni di diagnostica relativa ai limiti della destinazione.