Condividi tramite


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, è disponibile una nuova funzionalità di diagnostica integrata con Monitoraggio di Azure. Sono disponibili altre informazioni su questa funzionalità alla sezione Inviare log a Monitoraggio di Azure.

Type 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 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 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 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. È 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 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:

  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 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:

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

Entrambi i tipi di log vengono memorizzati nel file system del servizio app. Vengono conservati fino a 50 errori (file/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:

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 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 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. Una volta effettuato 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 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 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.

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, 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 che usano il formato di file di log esteso W3C. È possibile leggere queste informazioni con un editor di testo oppure 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/ Contengono i log generati dai processi di distribuzione interna, come anche i log per le distribuzioni Git.

Inviare log a Monitoraggio di Azure

Con la nuova 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.

Impostazioni di diagnostica

Tipi di log supportati

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

Nome log Tipo di registro Finestre Contenitore di Windows Linux Contenitore Linux Descrizione
Servizio app log della console AppServiceConsoleLogs Java SE eTomcat Output standard ed 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 log tramite FTP e Kudu
Log di controllo delle modifiche del contenuto del sito AppServiceFileAuditLogs Da definire Da definire Modifiche ai file apportate ai contenuti del sito; disponibile solo per a partire dal livello Premium
Log applicazioni del servizio app AppServiceAppLogs ASP.NET, .NET Core e Tomcat 1 ASP.NET e Tomcat 1 .NET Core, Java, SE e immagini predefinite Tomcat 2 Java SE e immagini predefinite Tomcat 2 Registri applicazioni 3
Log di controllo IPSecurity AppServiceIPSecAuditLogs Richieste da regole IP
Log della piattaforma del servizio app AppServicePlatformLogs Da definire Log operazioni contenitore
Segnalare i log di controllo antivirus AppServiceAntivirusScanAuditLogs 4 Log scansione antivirus usando 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 impostare false o 0. È necessario utilizzare la versione Tomcat più recente e usare java.util.logging.

2 Per le app Java SE, aggiungere WEBSITE_AZMON_PREVIEW_ENABLED alle impostazioni dell'app e impostare true o 1.

3 Il limite corrente per la registrazione è impostato su 100 log al minuto.

4 Il tipo di log AppServiceAntivirusScanAuditLogs log attualmente è in anteprima

Considerazioni sulla rete

Per le limitazioni delle impostazioni di diagnostica, fare riferimento alla documentazione ufficiale sulle impostazioni di diagnostica relativa ai limiti della destinazione.

Passaggi successivi