Condividi tramite


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

Azure offre diagnostica predefinita per facilitare il debug di un'app del servizio app di Azure. Questo articolo illustra come abilitare la registrazione diagnostica e aggiungere strumentazione all'applicazione. Si apprenderà anche come accedere alle informazioni log di Azure.

Questo articolo usa il portale di Azure e l'interfaccia della riga di comando di Azure per usare i log di diagnostica. Per informazioni sull'uso dei log di diagnostica con Visual Studio, vedere Risolvere i problemi relativi a un'app nel servizio app di Azure con Visual Studio.

Oltre alle istruzioni di registrazione in questo articolo, è possibile usare la funzionalità di registrazione integrata di Monitoraggio di Azure. Per altre informazioni, vedere Inviare i log a Azure Monitor.

Nota

Il 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.

Panoramica dei tipi di registrazione

TIPO Piattaforma Percorso di archiviazione log Descrizione
Registrazione di applicazioni Windows, Linux File system del servizio app e/o BLOB di Archiviazione di Azure Registrare i messaggi generati dal codice dell'applicazione. I messaggi possono essere generati dal framework Web scelto o direttamente dal codice dell'applicazione usando il modello di registrazione standard del linguaggio. A ogni messaggio viene assegnata una delle categorie seguenti: Critico, Errore, Avviso, Info, Debug o 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 il metodo HTTP, l'URI della risorsa, l'IP client, la porta client, l'agente utente e il codice di risposta.
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. Il servizio app può tuttavia salvare la pagina di errore ogni volta che si verifica un errore dell'applicazione con codice HTTP 400 o superiore. La pagina potrebbe 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. 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 per la visualizzazione del 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 i log vengono archiviati nel file system di App Service, sono soggetti allo spazio di archiviazione disponibile per il livello di prezzo. Per altre informazioni, vedere limiti servizio app.

Abilitare la registrazione applicazioni (Windows)

Per abilitare la registrazione delle applicazioni per le app di Windows nel portale di Azure:

  1. Accedere all'applicazione e selezionare Monitoraggio>App Service logs.

  2. Selezionare per una o entrambe le opzioni seguenti:

    • Registrazione delle applicazioni (file system): questa opzione è destinata a scopi temporanei di debug. Si disattiva in 12 ore.

    • Registrazione delle applicazioni (BLOB): questa opzione è per la registrazione a lungo termine. È necessario un contenitore di archiviazione BLOB in cui scrivere i log.

      L'opzione BLOB include 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).

  3. In Livello selezionare il livello di dettagli da registrare. La tabella seguente elenca le categorie dei log incluse in ogni livello:

    Livello Categorie incluse
    Disabilitato Nessuno
    Errore Errore, Critico
    Avvertenza Avviso, errore, critico
    Informazioni Informazioni, avviso, errore, critico
    Verboso Trace, Debug, Info, Warning, Error, Critical (tutte le categorie)
  4. Seleziona Salva.

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.

Attualmente, solo i log applicazioni .NET possono essere scritti nell'archivio BLOB. I log dell'applicazione Java, PHP, Node.jse Python possono essere archiviati solo nel file system del servizio app senza modifiche al codice per scrivere log nell'archiviazione esterna.

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:

  1. Nella scheda Configura impostare la rispettiva funzionalità di registrazione su Disattivato. Salvare l’impostazione.

  2. Abilitare di nuovo la registrazione nel BLOB dell'account di archiviazione. Salvare l’impostazione.

Abilitare la registrazione delle applicazioni (Linux o contenitore)

Per abilitare la registrazione delle applicazioni per app Linux o contenitori personalizzati nel portale di Azure:

  1. Vai all'app e seleziona Monitoraggio>Log del Servizio App.

  2. In Registrazione applicazioni selezionare File system.

  3. In Quota (MB) specificare la quota del disco per i registri dell'applicazione.

  4. In Periodo di conservazione (giorni) impostare il numero di giorni per conservare i log.

  5. Seleziona Salva.

Abilitare la registrazione del server Web

Per abilitare la registrazione del server Web per le app di Windows nel portale di Azure:

  1. Vai alla tua app e seleziona Monitoraggio>App Service logs.

  2. Per la registrazione dei log del server Web, selezionare Archiviazione per memorizzare i log nell'archiviazione BLOB o selezionare File System per memorizzare i log nel file system del servizio app.

  3. In Periodo di conservazione (giorni) impostare il numero di giorni per conservare i log.

  4. Seleziona Salva.

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.

Se si rigenerano le chiavi di accesso dell'account di archiviazione, è necessario reimpostare la rispettiva configurazione di registrazione per usare le chiavi aggiornate:

  1. Nella scheda Configura impostare la rispettiva funzionalità di registrazione su Disattivato. Salvare l’impostazione.

  2. Attivare nuovamente la registrazione nel blob dell'account di archiviazione. Salvare l’impostazione.

Errori dettagliati log

Per salvare la pagina di errore o le tracce delle richieste non riuscite per le app di Windows nel portale di Azure:

  1. Vai all'app e seleziona Monitoraggio>log di App Service.

  2. In Messaggi di errore dettagliati o Traccia richiesta non riuscita selezionare .

  3. Seleziona Salva.

Entrambi i tipi di log vengono memorizzati nel file system del servizio app. Mantiene fino a 50 errori (file o cartelle). Quando il numero di file HTML supera 50, il servizio app elimina i file di errore meno recenti.

Per impostazione predefinita, la 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, eseguire l'override della <traceFailedRequests> sezione nel Web.config file.

Aggiungere messaggi di log nel codice

Nel codice dell'applicazione è possibile usare le normali funzionalità di registrazione per inviare messaggi di log ai log applicazioni. Ad esempio:

Trasmettere i log

Prima di trasmettere i log in tempo reale, abilitare il tipo di log desiderato. Il servizio app trasmette tutte le informazioni scritte nell'output della console o nei file che terminano in .txt, .log o .htm archiviati nella /home/LogFiles directory (D:\home\LogFiles).

Nota

Alcuni tipi di buffer di registrazione scrivono nel file di log, che possono causare la visualizzazione degli eventi nell'ordine non corretto nel flusso. Ad esempio, una voce di log dell'applicazione che si verifica quando un utente visita una pagina potrebbe essere visualizzata nel flusso di dati prima della voce di log HTTP corrispondente alla richiesta della pagina.

Portale di Azure

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

Cloud Shell

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

Importante

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

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

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

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

Terminale locale

Per trasmettere i log nella console locale, installare Azure CLI e accedere al tuo 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 Microsoft per l'uso di Azure Storage.

Per i log archiviati nel file system di App Service, accedervi usando il motore Kudu.

  1. Aprire l'app nel portale di Azure e selezionare Strumenti> di sviluppoStrumenti avanzati e quindi selezionare Vai.
  2. In Kudu selezionare Strumenti>scarico diagnostico.

Per i contenitori Linux o 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 il contenuto della /home/LogFiles directory. I log di distribuzione vengono archiviati in /site/deployments/.

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

Tipo di registro Directory Descrizione
Registro applicazioni /LogFiles/Application/ Contiene uno o più file di testo. Il formato dei messaggi di log dipende dal provider di registrazione usato.
Traccia delle richieste non riuscite /LogFiles/W3SVC#########/ Contiene file XML e un file XSL. È possibile visualizzare i file XML formattati nel browser.
Log degli errori dettagliato /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. Nel menu a sinistra selezionare Diagnostica e risoluzione dei problemi. Cercare Log di traccia delle richieste non riuscite e quindi selezionare l'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. È possibile leggere questi file usando un editor di testo o uno strumento come Log Parser.

Il Servizio App non supporta i campi s-computername, s-ip e cs-version.
Log di distribuzione /LogFiles/Git/ e /deployments/ Contiene i log generati dai processi di distribuzione interni, insieme ai log per le distribuzioni Git.

Inviare log a Monitoraggio di Azure

Con l'integrazione di Monitoraggio di Azure è possibile creare impostazioni di diagnostica per inviare log agli account di archiviazione, agli hub eventi e alle aree di lavoro Log Analytics. Quando si aggiunge un'impostazione di diagnostica, servizio app aggiunge impostazioni dell'app all'app, attivando un riavvio dell'app.

Screenshot che mostra le selezioni per la visualizzazione delle impostazioni di diagnostica e l'aggiunta di un'impostazione di diagnostica.

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 informazioni sulle restrizioni per le impostazioni di diagnostica, vedere Limiti di destinazione.

Contenuti correlati