Partager via


Activer la journalisation des diagnostics pour les applications dans Azure App Service

Azure fournit des diagnostics intégrés pour faciliter le débogage d’une application Azure App Service. Dans cet article, vous allez apprendre à activer la journalisation des diagnostics et à ajouter de l’instrumentation à votre application. Vous apprenez également à accéder aux informations des journaux Azure.

Remarque

À compter du 1er juin 2024, les applications App Service nouvellement créées peuvent générer un nom d’hôte par défaut unique qui utilise la convention <app-name>-<random-hash>.<region>.azurewebsites.netd’affectation de noms. Par exemple : myapp-ds27dh7271aah175.westus-01.azurewebsites.net. Les noms d’application existants restent inchangés.

Pour plus d’informations, consultez le billet de blog sur la création d’une application web avec un nom d’hôte par défaut unique.

Cet article utilise le portail Azure et Azure CLI pour utiliser les journaux de diagnostic. Pour plus d’informations sur l’utilisation des journaux de diagnostic à l’aide de Visual Studio, consultez Résoudre les problèmes d’une application dans Azure App Service à l’aide de Visual Studio.

Outre les instructions de journalisation de cet article, vous pouvez utiliser la fonctionnalité de journalisation intégrée Azure Monitor. Pour plus d’informations, consultez Envoyer des journaux à Azure Monitor.

Remarque

App Service fournit un outil de diagnostic interactif dédié pour vous aider à résoudre les problèmes de votre application. Pour plus d’informations, consultez Présentation des diagnostics Azure App Service.

Vous pouvez également utiliser d’autres services Azure pour améliorer les fonctionnalités de journalisation et de supervision de votre application, telles qu’Azure Monitor.

Vue d’ensemble des types de journalisation

Type Plateforme Un emplacement de stockage de journal Description
Journalisation des applications Windows, Linux Système de fichiers App Service et/ou blobs de stockage Azure Journalise les messages générés par votre code d’application. Les messages peuvent être générés par l’infrastructure web que vous choisissez ou dans le code de votre application directement à l’aide du modèle de journalisation standard de votre langue. Chaque message est affecté à l’une des catégories suivantes : Critique, Erreur, Avertissement, Info, Débogage ou Trace. Vous pouvez sélectionner le degré de détail de la journalisation en définissant le niveau de gravité lorsque vous activez la journalisation des applications.
Journalisation du serveur web Windows Système de fichiers App Service ou objets blob Stockage Azure Données de requête HTTP brutes au format de fichier journal étendu W3C. Chaque message de journal inclut des données telles que la méthode HTTP, l’URI de ressource, l’adresse IP du client, le port client, l’agent utilisateur et le code de réponse.
Messages d’erreur détaillés Windows Système de fichiers App Service Copies des pages d’erreur .htm qui auraient été envoyées au navigateur client. Pour des raisons de sécurité, les pages d’erreur détaillées ne doivent pas être envoyées aux clients en production. Toutefois, App Service peut enregistrer la page d’erreur chaque fois qu’une erreur d’application contenant le code HTTP 400 ou supérieur se produit. La page peut contenir des informations qui peuvent vous aider à déterminer pourquoi le serveur retourne le code d’erreur.
Suivi des demandes ayant échoué Windows Système de fichiers App Service Informations de suivi détaillées des demandes qui ont échoué, y compris une trace des composants IIS utilisés pour traiter la demande et le temps pris par chaque composant. Ces informations sont utiles si vous souhaitez améliorer les performances du site ou isoler une erreur HTTP spécifique. Un dossier est généré pour chaque requête ayant échoué. Le dossier contient le fichier journal XML et la feuille de style XSL pour afficher le fichier journal.
Journalisation du déploiement Windows, Linux Système de fichiers App Service Journaux relatifs à votre publication de contenu dans une application. La journalisation du déploiement se produit automatiquement et il n’existe aucun paramètre configurable pour la journalisation du déploiement. Elle vous aide à déterminer la raison de l’échec d’un déploiement. Par exemple, si vous utilisez un script de déploiement personnalisé, vous pouvez recourir à la journalisation de déploiement pour déterminer la cause de l’échec du script.

Lorsque les journaux sont stockés dans le système de fichiers App Service, ils sont soumis au stockage disponible pour votre niveau tarifaire. Pour plus d’informations, consultez les limites d’App Service.

Activer la journalisation des applications (Windows)

Pour activer la journalisation des applications Windows dans le portail Azure :

  1. Accédez à votre application et sélectionnez Monitoring>Journaux App Service.

  2. Sélectionnez Activé pour l’une ou l’autre des deux options suivantes :

    • Journalisation des applications (système de fichiers) : cette option est destinée à des fins de débogage temporaire. Il se désactive en 12 heures.

    • Journalisation des applications (Blob) : cette option est destinée à la journalisation à long terme. Elle a besoin d’un conteneur de stockage d’objets blob pour y écrire des journaux d’activité.

      L’option Blob inclut des informations supplémentaires dans les messages de journal, telles que l’ID de l’instance de machine virtuelle d’origine du message de journal (InstanceId), l’ID de thread (Tid) et un horodatage plus précis (EventTickCount).

  3. Pour Level, sélectionnez le niveau de détails à consigner. Le tableau suivant présente les catégories de logs à chaque niveau :

    Niveau Catégories incluses
    Désactivé Aucun
    Error Erreur, Critique
    Avertissement Avertissement, erreur, critique
    Informations Informations, avertissement, erreur, critique
    Verbose Trace, Débogage, Info, Avertissement, Erreur, Critique (toutes les catégories)
  4. Cliquez sur Enregistrer.

Si vous écrivez des journaux dans des objets Blob, la stratégie de rétention ne s’applique plus si vous supprimez l’application tout en conservant les journaux dans les objets Blob. Pour plus d’informations, consultez Coûts qui peuvent s’additionner après la suppression des ressources.

Actuellement, seuls les journaux d’activité de l’application .NET peuvent être écrits dans le stockage d’objets blob. Les journaux d’application Java, PHP, Node.jset Python ne peuvent être stockés que dans le système de fichiers App Service sans modification du code pour écrire des journaux dans un stockage externe.

Si vous régénérez les clés d’accès de votre compte de stockage, vous devez réinitialiser la configuration de journalisation correspondante pour utiliser les clés d’accès mises à jour :

  1. Sous l’onglet Configurer , définissez la fonctionnalité de journalisation correspondante sur Désactivé. Enregistrez votre paramètre.

  2. Activez à nouveau la journalisation dans l’objet blob du compte de stockage. Enregistrez votre paramètre.

Activer la journalisation des applications (Linux ou conteneur)

Pour activer la journalisation des applications Linux ou des conteneurs personnalisés dans le portail Azure :

  1. Accédez à votre application et sélectionnez Monitoring>Journaux App Service.

  2. Dans Journal des applications, sélectionnez Système de fichiers.

  3. Dans Quota (Mo), spécifiez le quota de disque pour les journaux d'application.

  4. Dans la période de rétention (jours), définissez le nombre de jours pour conserver les journaux.

  5. Cliquez sur Enregistrer.

Activer la journalisation de serveur Web

Pour activer la journalisation des serveurs web pour les applications Windows dans le portail Azure :

  1. Accédez à votre application et sélectionnez Surveillance>journaux de service d'application.

  2. Pour Journalisation du serveur web, sélectionnez Stockage pour stocker les journaux dans le stockage d’objets blob, ou sélectionnez Système de fichiers pour stocker les journaux sur le système de fichiers App service.

  3. Dans la période de rétention (jours), définissez le nombre de jours pour conserver les journaux.

  4. Cliquez sur Enregistrer.

Si vous écrivez des journaux dans des objets Blob, la stratégie de rétention ne s’applique plus si vous supprimez l’application tout en conservant les journaux dans les objets Blob. Pour plus d’informations, consultez Coûts qui peuvent s’additionner après la suppression des ressources.

Si vous régénérez les clés d’accès de votre compte de stockage, vous devez réinitialiser la configuration de journalisation correspondante pour utiliser les clés mises à jour :

  1. Sous l’onglet Configurer , définissez la fonctionnalité de journalisation correspondante sur Désactivé. Enregistrez votre paramètre.

  2. Activez à nouveau la journalisation dans l’objet blob du compte de stockage. Enregistrez votre paramètre.

Consigner les erreurs détaillées

Pour enregistrer la page d’erreur ou les traces de requêtes ayant échoué pour les applications Windows dans le portail Azure :

  1. Accédez à votre application et sélectionnez Surveiller>Journaux App Service.

  2. Sous Messages d’erreur détaillés ou Suivi des demandes ayant échoué, sélectionnez Activé.

  3. Cliquez sur Enregistrer.

Les deux types de journaux sont stockés dans le système de fichiers App Service. Il conserve jusqu’à 50 erreurs (fichiers ou dossiers). Lorsque le nombre de fichiers HTML dépasse 50, App Service supprime les fichiers d’erreur les plus anciens.

Par défaut, le suivi des requêtes ayant échoué capture un journal des requêtes ayant échoué avec des codes d’état HTTP compris entre 400 et 600. Pour spécifier des règles personnalisées, remplacez la <traceFailedRequests> section dans le Web.config fichier.

Ajouter des messages de journalisation dans le code

Dans votre code d’application, vous pouvez utiliser les fonctionnalités de journalisation habituelles pour envoyer des messages de journalisation aux journaux d’activité de l’application. Par exemple :

Diffuser les journaux d’activité en continu

Avant de diffuser des journaux de bord en temps réel, activez le type de journal que vous souhaitez. App Service diffuse toutes les informations écrites dans la sortie de la console ou les fichiers se terminant par .txt, .log ou .htm stockées dans le /home/LogFiles répertoire (D:\home\LogFiles).

Remarque

Certains types de mémoires tampons de journalisation écrivent dans le fichier journal, ce qui peut entraîner l’apparition d’événements dans l’ordre incorrect dans le flux. Par exemple, une entrée de journal d’application qui se produit lorsqu’un utilisateur visite une page peut s’afficher dans le flux avant l’entrée de journal HTTP correspondante pour la demande de page.

Portail Azure

Pour diffuser les journaux d’activité dans le Portail Azure, accédez à votre application et sélectionnez Monitoring>Flux de journaux.

Cloud Shell

Pour diffuser des logs en direct dans Azure Cloud Shell, utilisez la commande suivante.

Important

Cette commande peut ne pas fonctionner avec les applications web hébergées dans un plan App Service basé sur Linux.

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

Pour filtrer des types de journaux spécifiques, tels que HTTP, utilisez le paramètre --provider. Par exemple :

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

Terminal local

Pour diffuser les journaux dans la console locale, installez l’interface de ligne de commande Azure et connectez-vous à votre compte. Une fois connecté, suivez les instructions pour Cloud Shell.

Accéder aux fichiers journaux

Si vous configurez l’option des objets blob de stockage Azure pour un type de journal, vous avez besoin d’un outil client qui fonctionne avec le stockage Azure. Pour plus d’informations, consultez les outils clients Microsoft pour l’utilisation du stockage Azure.

Pour les journaux stockés dans le système de fichiers App Service, le moyen le plus simple d’accéder aux fichiers consiste à télécharger le fichier ZIP dans le navigateur à l’adresse suivante :

  • Conteneurs Linux ou personnalisés : https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Applications Windows : https://<app-name>.scm.azurewebsites.net/api/dump

Pour les conteneurs Linux ou personnalisés, le fichier ZIP contient des journaux de sortie de console pour l’hôte Docker et le conteneur Docker. Pour une application avec scale-out, le fichier ZIP contient un ensemble de journaux pour chaque instance. Dans le système de fichiers App Service, ces fichiers journaux sont le contenu du /home/LogFiles répertoire. Les journaux de déploiement sont stockés dans /site/deployments/.

Pour les applications Windows, le fichier ZIP contient le contenu du répertoire D:\Home\LogFiles dans le système de fichiers App Service. Sa structure est la suivante :

Type de journal Répertoire Description
Journal des application /LogFiles/Application/ Contient un ou plusieurs fichiers texte. Le format des messages de journal dépend du fournisseur de journalisation que vous utilisez.
Suivi des demandes ayant échoué /LogFiles/W3SVC#########/ Contient des fichiers XML et un fichier XSL. Vous pouvez afficher les fichiers XML mis en forme dans le navigateur.
Journal des erreurs détaillé /LogFiles/DetailedErrors/ Contient les fichiers d’erreur HTM. Vous pouvez afficher les fichiers HTM dans le navigateur.

Une autre façon d’afficher les traces des demandes ayant échoué consiste à accéder à la page de votre application dans le portail. Dans le menu de gauche, sélectionnez Diagnostiquer et résoudre les problèmes. Recherchez les journaux de suivi des demandes ayant échoué, puis sélectionnez l’icône pour parcourir et afficher la trace souhaitée.
Journal du serveur web /LogFiles/http/RawLogs/ Contient des fichiers texte mis en forme à l’aide du format de fichier journal étendu W3C. Vous pouvez lire ces fichiers à l’aide d’un éditeur de texte ou d’un outil tel que l’analyseur de journal.

App Service ne prend pas en charge les champs s-computername, s-ip et cs-version.
Journal de déploiement /LogFiles/Git/ et /deployments/ Contient les journaux générés par les processus de déploiement internes, ainsi que les journaux des déploiements Git.

Envoyer des journaux à Azure Monitor

Avec l’intégration d’Azure Monitor, vous pouvez créer des paramètres de diagnostic pour envoyer des journaux à des comptes de stockage, des hubs d’événements et des espaces de travail Log Analytics. Lorsque vous ajoutez un paramètre de diagnostic, App Service ajoute des paramètres d’application à votre application, ce qui déclenche un redémarrage de l’application.

Capture d’écran montrant les sélections permettant d’afficher les paramètres de diagnostic et d’ajouter un paramètre de diagnostic.

Types de journaux pris en charge

Pour obtenir la liste des types de journaux pris en charge, ainsi que leurs descriptions, consultez les Journaux de ressources pris en charge pour Microsoft.Web.

Considérations relatives au réseau

Pour plus d’informations sur les restrictions relatives aux paramètres de diagnostic, consultez Les limites de destination.

Contenu connexe