Diagnostische logboekregistratie inschakelen voor apps in Azure App Service

Overzicht

Azure biedt ingebouwde diagnostische gegevens om te helpen bij het debuggen van een App Service app. In dit artikel leert u hoe u diagnostische logboekregistratie kunt inschakelen en instrumentatie kunt toevoegen aan uw toepassing, en hoe u toegang krijgt tot de gegevens die zijn geregistreerd door Azure.

In dit artikel worden de Azure Portal en Azure CLI gebruikt om te werken met diagnostische logboeken. Zie Troubleshooting Azure in Visual Studio (Problemen met Azure oplossen in Visual Studio) voor meer informatie over het werken met diagnostische logboekenmet behulp Visual Studio.

Notitie

Naast de logboekinstructies in dit artikel zijn er nieuwe, geïntegreerde logboekregistratiemogelijkheden met Azure Monitoring. Meer informatie over deze mogelijkheid vindt u in de sectie Logboeken naar Azure Monitor verzenden.

Type Platform Locatie Description
Toepassingslogboeken Windows, Linux App Service bestandssysteem en/of Azure Storage blobs Registreert berichten die worden gegenereerd door uw toepassingscode. De berichten kunnen worden gegenereerd door het web-framework dat u kiest, of rechtstreeks vanuit uw toepassingscode met behulp van het standaardlogboekpatroon van uw taal. Aan elk bericht is een van de volgende categorieën toegewezen: Kritiek, Fout, Waarschuwing, Info, Fouten opsporen en Traceren. U kunt selecteren hoe uitgebreid de logboekregistratie moet zijn door het ernstniveau in te stellen wanneer u toepassingslogregistratie inschakelen.
Logboekregistratie van webserver Windows App Service-bestandssysteem of Azure Storage blobs Onbewerkte HTTP-aanvraaggegevens in de uitgebreide W3C-indeling voor logboekbestanden. Elk logboekbericht bevat gegevens zoals de HTTP-methode, resource-URI, client-IP, clientpoort, gebruikersagent, antwoordcode, en meer.
Gedetailleerde foutberichten Windows App Service-bestandssysteem Kopieën van de .htm foutpagina's die naar de clientbrowser zouden zijn verzonden. Uit veiligheidsoverwegingen mogen gedetailleerde foutpagina's niet worden verzonden naar clients in productie, maar App Service kunnen de foutpagina opslaan telkens wanneer er een toepassingsfout met HTTP-code 400 of hoger optreedt. De pagina kan informatie bevatten die kan helpen bepalen waarom de server de foutcode retourneert.
Tracering van mislukte aanvragen Windows App Service-bestandssysteem Gedetailleerde traceringsinformatie over mislukte aanvragen, waaronder een tracering van de IIS-onderdelen die worden gebruikt voor het verwerken van de aanvraag en de tijd die nodig is voor elk onderdeel. Dit is handig als u de prestaties van de site wilt verbeteren of een specifieke HTTP-fout wilt isoleren. Er wordt één map gegenereerd voor elke mislukte aanvraag, die het XML-logboekbestand bevat, en het XSL-stijlblad om het logboekbestand mee weer te geven.
Implementatielogregistratie Windows, Linux App Service-bestandssysteem Registreert voor wanneer u inhoud naar een app publiceert. Registratie van implementatie vindt automatisch plaats en er zijn geen configureerbare instellingen voor implementatielogregistratie. Het helpt u te bepalen waarom een implementatie is mislukt. Als u bijvoorbeeld een aangepast implementatiescriptgebruikt, kunt u implementatielogboekregistratie gebruiken om te bepalen waarom het script mislukt.

Notitie

App Service biedt een speciaal, interactief diagnosehulpprogramma om u te helpen bij het oplossen van problemen met uw toepassing. Zie overzicht van diagnostische Azure App Service voor meer informatie.

Daarnaast kunt u andere Azure-services gebruiken om de logboek- en bewakingsmogelijkheden van uw app te verbeteren, zoals Azure Monitor.

Logboekregistratie van toepassingen inschakelen (Windows)

Notitie

Toepassingslogregistratie voor blobopslag kan alleen opslagaccounts gebruiken in dezelfde regio als de App Service

Als u toepassingslogboeken wilt inschakelen Windows apps in de Azure Portal,gaat u naar uw app en selecteert u App Service logboeken.

Selecteer Aan voor Application Logging (bestandssysteem) of Application Logging (blob) of beide.

De optie Bestandssysteem is bedoeld voor tijdelijke debuggingsdoeleinden en wordt binnen 12 uur uitgeschakeld. De optie Blob is voor langetermijnregistratie en heeft een Blob Storage-container nodig om logboeken naar te schrijven. De optie Blob bevat ook aanvullende informatie in de logboekberichten, zoals de id van de oorspronkelijke VM-instantie van het logboekbericht ( ), thread-id ( ) en een gedetailleerdere InstanceId Tid tijdstempel ( EventTickCount ).

Notitie

Momenteel kunnen alleen .NET-toepassingslogboeken naar de blobopslag worden geschreven. Java-, PHPNode.js- en Python-toepassingslogboeken kunnen alleen worden opgeslagen op het App Service-bestandssysteem (zonder codewijzigingen om logboeken naar externe opslag te schrijven).

Als u de toegangssleutelsvan uw opslagaccount opnieuw maakt, moet u ook de respectieve configuratie voor logboekregistratie opnieuw instellen om de bijgewerkte toegangssleutels te gebruiken. Om dit te doen:

  1. Stel op het tabblad Configureren de betreffende logboekregistratiefunctie in op Uit. Sla uw instelling op.
  2. Schakel logboekregistratie voor de blob van het opslagaccount opnieuw in. Sla uw instelling op.

Selecteer het niveau of het niveau van de details dat u wilt logboeken. In de volgende tabel ziet u de logboekcategorieën die zijn opgenomen in elk niveau:

Niveau Opgenomen categorieën
Uitgeschakeld Geen
Fout Fout, kritiek
Waarschuwing Waarschuwing, Fout, Kritiek
Informatie Info, Waarschuwing, Fout, Kritiek
Uitgebreide Trace, Debug, Info, Warning, Error, Critical (alle categorieën)

Wanneer u klaar bent, selecteert u Opslaan.

Notitie

Als u logboeken naar blobs schrijft, is het bewaarbeleid niet meer van toepassing als u de app verwijdert, maar de logboeken in de blobs houdt. Zie Kosten die kunnen ontstaan na het verwijderen van resources voor meer informatie.

Toepassingslogregistratie inschakelen (Linux/Container)

Als u toepassingslogboeken wilt inschakelen voor Linux-apps of aangepaste container-apps in de Azure Portal,navigeert u naar uw app en selecteert App Service logboeken.

Selecteer bestandssysteem in Toepassingslogregistratie.

Geef in Quotum (MB) het schijfquotum voor de toepassingslogboeken op. Stel in Bewaarperiode (dagen) het aantal dagen in dat de logboeken moeten worden bewaard.

Wanneer u klaar bent, selecteert u Opslaan.

Logboekregistratie van webservers inschakelen

Als u webserverlogboeken wilt inschakelen Windows apps in de Azure Portal,gaat u naar uw app en selecteert u App Service logboeken.

Selecteer voor Logboekregistratie van webserver Storage logboeken op te slaan in blobopslag of Bestandssysteem voor het opslaan van logboeken op het App Service bestandssysteem.

Stel in Bewaarperiode (dagen) het aantal dagen in dat de logboeken moeten worden bewaard.

Notitie

Als u de toegangssleutels vanuw opslagaccount opnieuw opstart, moet u de configuratie van de logboekregistratie opnieuw instellen om de bijgewerkte sleutels te gebruiken. Om dit te doen:

  1. Stel op het tabblad Configureren de betreffende logboekregistratiefunctie in op Uit. Sla uw instelling op.
  2. Schakel logboekregistratie voor de blob van het opslagaccount opnieuw in. Sla uw instelling op.

Wanneer u klaar bent, selecteert u Opslaan.

Notitie

Als u logboeken naar blobs schrijft, is het bewaarbeleid niet meer van toepassing als u de app verwijdert, maar de logboeken in de blobs houdt. Zie Kosten die kunnen ontstaan na het verwijderen van resources voor meer informatie.

Gedetailleerde fouten in logboeken

Als u de foutpagina of mislukte tracering van aanvragen voor Windows-apps in de Azure Portal wiltopslaan, gaat u naar uw app en selecteert u App Service logboeken.

Selecteer onder Gedetailleerde logboekregistratie van fouten of Tracering van mislukte aanvragen de optie Aan en selecteer vervolgens Opslaan.

Beide typen logboeken worden opgeslagen in App Service bestandssysteem. Er worden maximaal 50 fouten (bestanden/mappen) bewaard. Wanneer het aantal HTML-bestanden groter is dan 50, worden de oudste foutbestanden automatisch verwijderd.

Met de functie Tracering van mislukte aanvragen wordt standaard een logboek vastgelegd met aanvragen die zijn mislukt met HTTP-statuscodes tussen 400 en 600. Als u aangepaste regels wilt opgeven, kunt u de sectie <traceFailedRequests> in hetweb.configoverschrijven.

Logboekberichten toevoegen in code

In uw toepassingscode gebruikt u de gebruikelijke faciliteiten voor logboekregistratie om logboekberichten naar de toepassingslogboeken te verzenden. Bijvoorbeeld:

Logboeken streamen

Voordat u logboeken in realtime streamt, moet u het want-logboektype inschakelen. Alle informatie die wordt geschreven naar bestanden die eindigen op .txt, .log of .htm die zijn opgeslagen in de map /LogFiles (d:/home/logfiles) wordt gestreamd door App Service.

Notitie

Sommige typen logboekregistratiebuffer schrijven naar het logboekbestand, wat kan leiden tot niet-volgordegebeurtenissen in de stroom. Een toepassingslogboekinvoer die bijvoorbeeld plaatsvindt wanneer een gebruiker een pagina bezoekt, kan worden weergegeven in de stroom vóór de bijbehorende HTTP-logboekinvoer voor de paginaaanvraag.

In Azure Portal

Als u logboeken in de Azure Portal,navigeert u naar uw app en selecteert u Logboekstream.

In Cloud Shell

Als u logboeken live wilt streamen in Cloud Shell, gebruikt u de volgende opdracht:

Belangrijk

Deze opdracht werkt mogelijk niet met web-apps die worden gehost in een Linux App Service-plan.

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

Als u specifieke logboektypen, zoals HTTP, wilt filteren, gebruikt u de parameter --Provider. Bijvoorbeeld:

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

In de lokale terminal

Als u logboeken in de lokale console wilt streamen, installeert u Azure CLI en meldt u zich aan bij uw account. Nadat u bent aangemeld, volgt u de instructies voor Cloud Shell

Logboekbestanden openen

Als u de optie Azure Storage voor een logboektype configureert, hebt u een clienthulpprogramma nodig dat werkt met Azure Storage. Zie clienthulpprogramma'Azure Storage voor meer informatie.

Voor logboeken die zijn opgeslagen in App Service-bestandssysteem, is de eenvoudigste manier om het ZIP-bestand in de browser te downloaden op:

  • Linux-/container-apps: https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
  • Windows apps:https://<app-name>.scm.azurewebsites.net/api/dump

Voor Linux-/container-apps bevat het ZIP-bestand console-uitvoerlogboeken voor zowel de docker-host als de docker-container. Voor een geschaalde app bevat het ZIP-bestand één set logboeken voor elk exemplaar. In het App Service zijn deze logboekbestanden de inhoud van de map /home/LogFiles.

Voor Windows-apps bevat het ZIP-bestand de inhoud van de map D:\Home\LogFiles in App Service bestandssysteem. Deze heeft de volgende structuur:

Logboektype Directory Description
Toepassingslogboeken /LogFiles/Application/ Bevat een of meer tekstbestanden. De indeling van de logboekberichten is afhankelijk van de provider voor logboekregistratie die u gebruikt.
Traceringen mislukte aanvragen /LogFiles/W3SVC##########/ Bevat XML-bestanden en een XSL-bestand. U kunt de opgemaakte XML-bestanden weergeven in de browser.
Gedetailleerde foutenlogboeken /LogFiles/DetailedErrors/ Bevat HTM-foutbestanden. U kunt de HTM-bestanden weergeven in de browser.
Een andere manier om de traceringen van mislukte aanvragen weer te geven, is door naar uw app-pagina in de portal te navigeren. Selecteer in het menu links Problemen vaststellen en oplossen, zoek naar Logboeken voor tracering van mislukte aanvragen en klik vervolgens op het pictogram om te bladeren en de gezochte tracering weer te geven.
Webserverlogboeken /LogFiles/http/RawLogs/ Bevat tekstbestanden die zijn opgemaakt met de uitgebreide W3C-indeling voor logboekbestanden. Deze informatie kan worden gelezen met behulp van een teksteditor of een hulpprogramma zoals Log Parser.
App Service biedt geen ondersteuning voor s-computername de velden , of s-ip cs-version .
Implementatielogboeken /LogFiles/Git/ en /deployments/ Logboeken bevatten die worden gegenereerd door de interne implementatieprocessen, evenals logboeken voor Git-implementaties.

Logboeken verzenden naar Azure Monitor

Met de nieuwe Azure Monitor-integratiekunt u diagnostische gegevens maken Instellingen logboeken te verzenden naar Storage Accounts, Event Hubs en Log Analytics.

Diagnostische Instellingen

Ondersteunde logboektypen

In de volgende tabel ziet u de ondersteunde logboektypen en beschrijvingen:

Logboektype Windows Windows Container Linux Linux-container Description
AppServiceConsoleLogs Java SE & Tomcat Ja Ja Ja Standaarduitvoer en standaardfout
AppServiceHTTPLogs Ja Ja Ja Ja Webserverlogboeken
AppServiceEnvironmentPlatformLogs Yes N.v.t. Ja Ja App Service Environment: schalen, configuratiewijzigingen en statuslogboeken
AppServiceAuditLogs Ja Ja Ja Ja Aanmeldingsactiviteit via FTP en Kudu
AppServiceFileAuditLogs Ja Ja TBA TBA Bestandswijzigingen die zijn aangebracht in de site-inhoud; alleen beschikbaar voor Premium-laag en hoger
AppServiceAppLogs ASP.NET & Tomcat 1 ASP.NET & Tomcat 1 Java SE & Tomcat Images 2 Java SE & Tomcat Images 2 Toepassingslogboeken
AppServiceIPSecAuditLogs Ja Ja Ja Ja Aanvragen van IP-regels
AppServicePlatformLogs TBA Ja Ja Ja Containerbewerkingslogboeken
AppServiceAntivirusScanAuditLogs 3 Ja Ja Ja Ja Antivirusscanlogboeken met Microsoft Defender for Cloud; alleen beschikbaar voor Premium laag

1 Voeg voor Tomcat-apps toe TOMCAT_USE_STARTUP_BAT aan de app-instellingen en stel deze in op false of 0 . Moet de nieuwste Tomcat-versie hebben en java.util.logging gebruiken.

2 Voor Java SE-apps voegt u WEBSITE_AZMON_PREVIEW_ENABLED toe aan de app-instellingen en stelt u deze in true op of op 1 .

3 Het logboektype AppServiceAntivirusScanAuditLogs is momenteel nog in preview

Volgende stappen