Diagnostische logboekregistratie inschakelen voor apps in Azure App Service
Notitie
Vanaf 1 juni 2024 hebben alle nieuw gemaakte App Service-apps de mogelijkheid om een unieke standaardhostnaam te genereren met behulp van de naamconventie <app-name>-<random-hash>.<region>.azurewebsites.net
. Bestaande app-namen blijven ongewijzigd.
Voorbeeld: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Raadpleeg de unieke standaardhostnaam voor App Service-resource voor meer informatie.
In deze video ziet u hoe u diagnostische logboekregistratie voor apps inschakelt.
De stappen in de video worden ook beschreven in de volgende secties.
Overzicht
Azure biedt ingebouwde diagnostische gegevens voor hulp bij het opsporen van fouten in een App Service-app. In dit artikel leert u hoe u diagnostische logboekregistratie inschakelt en instrumentatie toevoegt aan uw toepassing, en hoe u toegang krijgt tot de gegevens die zijn vastgelegd door Azure.
In dit artikel worden Azure Portal en Azure CLI gebruikt om te werken met diagnostische logboeken. Zie Problemen met Azure in Visual Studio oplossen voor meer informatie over het werken met diagnostische logboeken met Visual Studio.
Notitie
Naast de instructies voor logboekregistratie in dit artikel kunt u ook de geïntegreerde logboekregistratiefunctie van Azure Monitor gebruiken. Meer informatie over deze mogelijkheid vindt u in de sectie Logboeken verzenden naar Azure Monitor .
Type | Platform | Opslaglocatie voor logboeken | Beschrijving |
---|---|---|---|
Toepassingslogboeken | Windows, Linux | App Service-bestandssysteem en/of Azure Storage-blobs | Registreert berichten die zijn gegenereerd door uw toepassingscode. De berichten kunnen worden gegenereerd door het webframework dat u kiest, of rechtstreeks vanuit uw toepassingscode met behulp van het standaardregistratiepatroon van uw taal. Aan elk bericht wordt 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 toepassingslogboekregistratie inschakelt. |
Webserverlogboeken | Windows | App Service-bestandssysteem of Azure Storage-blobs | Onbewerkte HTTP-aanvraaggegevens in de uitgebreide W3C-logboekbestandsindeling. Elk logboekbericht bevat gegevens zoals de HTTP-methode, resource-URI, client-IP, clientpoort, gebruikersagent, antwoordcode, enzovoort. |
Gedetailleerde foutberichten | Windows | App Service-bestandssysteem | Kopieën van de .htm foutpagina's die naar de clientbrowser zouden zijn verzonden. Om veiligheidsredenen mogen gedetailleerde foutpagina's niet worden verzonden naar clients in productie, maar App Service kan de foutpagina opslaan telkens wanneer een toepassingsfout optreedt met HTTP-code 400 of hoger. 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, inclusief een tracering van de IIS-onderdelen die worden gebruikt voor het verwerken van de aanvraag en de tijd die in elk onderdeel is genomen. Deze informatie is handig als u de siteprestaties wilt verbeteren of een specifieke HTTP-fout wilt isoleren. Er wordt één map gegenereerd voor elke mislukte aanvraag. De map bevat het XML-logboekbestand en het XSL-opmaakmodel waarmee het logboekbestand kan worden weergegeven. |
Logboekregistratie van implementatie | Windows, Linux | App Service-bestandssysteem | Registreert voor wanneer u inhoud naar een app publiceert. Implementatielogboeken worden automatisch uitgevoerd en er zijn geen configureerbare instellingen voor implementatielogboekregistratie. Hiermee kunt u bepalen waarom een implementatie is mislukt. Als u bijvoorbeeld een aangepast implementatiescript gebruikt, kunt u implementatielogboekregistratie gebruiken om te bepalen waarom het script mislukt. |
Wanneer logboeken zijn opgeslagen in het App Service-bestandssysteem, zijn ze onderhevig aan de beschikbare opslag voor uw prijscategorie (zie App Service-limieten).
Notitie
App Service biedt een speciaal hulpprogramma voor interactieve diagnostische gegevens waarmee u problemen met uw toepassing kunt oplossen. Zie Azure-app Overzicht van diagnostische gegevens van de service voor meer informatie.
Daarnaast kunt u andere Azure-services gebruiken om de mogelijkheden voor logboekregistratie en bewaking van uw app, zoals Azure Monitor, te verbeteren.
Toepassingslogboekregistratie inschakelen (Windows)
Als u toepassingslogboeken wilt inschakelen voor Windows-apps in Azure Portal, gaat u naar uw app en selecteert u App Service-logboeken.
Selecteer Aan voor toepassingslogboekregistratie (bestandssysteem) of toepassingslogboeken (blob) of beide.
De optie Bestandssysteem is bedoeld voor tijdelijke foutopsporing en schakelt zichzelf in 12 uur uit. De optie Blob is bedoeld voor logboekregistratie op lange termijn 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 het oorspronkelijke VM-exemplaar van het logboekbericht (), thread-id (InstanceId
Tid
) en een gedetailleerdere tijdstempel (EventTickCount
).
Notitie
Momenteel kunnen alleen .NET-toepassingslogboeken naar de blobopslag worden geschreven. Java-, PHP-, Node.js- en Python-toepassingslogboeken kunnen alleen worden opgeslagen in het App Service-bestandssysteem (zonder codewijzigingen voor het schrijven van logboeken naar externe opslag).
Als u de toegangssleutels van uw opslagaccount opnieuw genereert, moet u ook de respectieve configuratie voor logboekregistratie opnieuw instellen om de bijgewerkte toegangssleutels te gebruiken. Dit doet u als volgt:
- Stel op het tabblad Configureren de desbetreffende functie voor logboekregistratie in op Uit. Sla uw instelling op.
- Schakel logboekregistratie opnieuw in voor de blob van het opslagaccount. Sla uw instelling op.
Selecteer het niveau of het detailniveau dat moet worden vastgelegd. 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 |
Breedsprakig | Tracering, foutopsporing, info, waarschuwing, fout, kritiek (alle categorieën) |
Selecteer Opslaan wanneer u klaar bent.
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 bewaart. Zie Kosten die na het verwijderen van resources kunnen oplopen voor meer informatie.
Toepassingslogboekregistratie inschakelen (Linux/Container)
Als u toepassingslogboeken wilt inschakelen voor Linux-apps of aangepaste containers in Azure Portal, gaat u naar uw app en selecteert u App Service-logboeken.
Selecteer Bestandssysteem in logboekregistratie van toepassingen.
Geef in Quota (MB) het schijfquotum op voor de toepassingslogboeken. Stel in de bewaarperiode (dagen) het aantal dagen in dat de logboeken moeten worden bewaard.
Selecteer Opslaan wanneer u klaar bent.
Logboekregistratie van webservers inschakelen
Als u logboekregistratie van webservers wilt inschakelen voor Windows-apps in Azure Portal, gaat u naar uw app en selecteert u App Service-logboeken.
Voor logboekregistratie van webservers selecteert u Opslag voor het opslaan van logboeken in blobopslag of bestandssysteem voor het opslaan van logboeken in het App Service-bestandssysteem.
Stel in de bewaarperiode (dagen) het aantal dagen in dat de logboeken moeten worden bewaard.
Notitie
Als u de toegangssleutels van uw opslagaccount opnieuw genereert, moet u de respectieve configuratie voor logboekregistratie opnieuw instellen om de bijgewerkte sleutels te gebruiken. Dit doet u als volgt:
- Stel op het tabblad Configureren de desbetreffende functie voor logboekregistratie in op Uit. Sla uw instelling op.
- Schakel logboekregistratie opnieuw in voor de blob van het opslagaccount. Sla uw instelling op.
Selecteer Opslaan wanneer u klaar bent.
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 bewaart. Zie Kosten die na het verwijderen van resources kunnen oplopen voor meer informatie.
Gedetailleerde fouten in logboeken
Als u de foutpagina of mislukte tracering van aanvragen voor Windows-apps in Azure Portal wilt opslaan, gaat u naar uw app en selecteert u App Service-logboeken.
Selecteer Aan onder Gedetailleerde foutlogboekregistratie of Tracering van mislukte aanvragen en selecteer Opslaan.
Beide typen logboeken worden opgeslagen in het App Service-bestandssysteem. Maximaal 50 fouten (bestanden of mappen) worden 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 van aanvragen die zijn mislukt met HTTP-statuscodes tussen 400 en 600. Als u aangepaste regels wilt opgeven, kunt u de <traceFailedRequests>
sectie in het web.config-bestand overschrijven.
Logboekberichten toevoegen in code
In uw toepassingscode gebruikt u de gebruikelijke logboekregistratiefaciliteiten om logboekberichten naar de toepassingslogboeken te verzenden. Voorbeeld:
ASP.NET toepassingen kunnen de klasse System.Diagnostics.Trace gebruiken om gegevens in het diagnostische logboek van de toepassing te registreren. Voorbeeld:
System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
Standaard gebruikt ASP.NET Core de logboekregistratieprovider Microsoft.Extensions.Logging.AzureAppServices . Zie ASP.NET Core-logboekregistratie in Azure voor meer informatie. Zie Aan de slag met de Azure WebJobs SDK voor informatie over logboekregistratie van WebJobs SDK.
Python-toepassingen kunnen het OpenCensus-pakket gebruiken om logboeken te verzenden naar het diagnostische logboek van de toepassing.
Logboeken streamen
Voordat u logboeken in realtime streamt, schakelt u het gewenste logboektype in. Alle informatie die naar de console-uitvoer of -bestanden wordt geschreven die eindigen op .txt, .log of .htm die zijn opgeslagen in de map /home/LogFiles (D:\home\LogFiles), wordt gestreamd door App Service.
Notitie
Sommige typen logboekregistratiebuffer schrijven naar het logboekbestand, wat kan leiden tot gebeurtenissen die in de onjuiste volgorde in de stream worden weergegeven. Een toepassingslogboekvermelding die optreedt wanneer een gebruiker een pagina bezoekt, kan bijvoorbeeld worden weergegeven in de stream voordat de bijbehorende HTTP-logboekvermelding voor de paginaaanvraag wordt weergegeven.
In Azure Portal
Als u logboeken wilt streamen in Azure Portal, gaat u naar uw app en selecteert u Log stream.
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 . Voorbeeld:
az webapp log tail --name appname --resource-group myResourceGroup --provider http
In de lokale terminal
Als u logboeken wilt streamen in de lokale console, installeert u Azure CLI en meldt u zich aan bij uw account. Nadat u bent aangemeld, volgt u de instructies voor Cloud Shell.
Toegang tot logboekbestanden
Als u de optie Azure Storage-blobs configureert voor een logboektype, hebt u een clienthulpprogramma nodig dat werkt met Azure Storage. Zie Azure Storage-clienthulpprogramma's voor meer informatie.
Voor logboeken die zijn opgeslagen in het App Service-bestandssysteem, is de eenvoudigste manier om toegang te krijgen tot de bestanden door het ZIP-bestand te downloaden in de browser op:
- Linux/aangepaste containers:
https://<app-name>.scm.azurewebsites.net/api/logs/docker/zip
- Windows-apps:
https://<app-name>.scm.azurewebsites.net/api/dump
Voor Linux-/aangepaste containers bevat het ZIP-bestand consoleuitvoerlogboeken voor zowel de Docker-host als de Docker-container. Voor een uitgeschaalde app bevat het ZIP-bestand één set logboeken voor elk exemplaar. In het App Service-bestandssysteem zijn deze logboekbestanden de inhoud van de map /home/LogFiles . Implementatielogboeken worden opgeslagen in /site/implementaties/.
Voor Windows-apps bevat het ZIP-bestand de inhoud van de map D:\Home\LogFiles in het App Service-bestandssysteem. De structuur heeft de volgende structuur:
Logboektype | Directory | Beschrijving |
---|---|---|
Toepassingslogboeken | /LogFiles/Application/ | Bevat een of meer tekstbestanden. De indeling van de logboekberichten is afhankelijk van de logboekprovider die u gebruikt. |
Traceringen van 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 in de browser bekijken. 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 linkermenu Diagnose en los problemen op, zoek logboeken voor tracering van mislukte aanvragen en klik vervolgens op het pictogram om door de gewenste tracering te bladeren en weer te geven. |
Webserverlogboeken | /LogFiles/http/RawLogs/ | Bevat tekstbestanden die zijn opgemaakt met de uitgebreide W3C-logboekbestandsindeling. U kunt deze bestanden lezen met behulp van een teksteditor of een hulpprogramma zoals Logboekparser. App Service biedt geen ondersteuning voor de s-computername velden of s-ip cs-version velden. |
Implementatielogboeken | /LogFiles/Git/ en /deployments/ | Bevat logboeken die worden gegenereerd door de interne implementatieprocessen, evenals logboeken voor Git-implementaties. |
Logboeken verzenden naar Azure Monitor
Met Azure Monitor-integratie kunt u diagnostische instellingen maken om logboeken te verzenden naar opslagaccounts, Event Hubs en Log Analytics. Wanneer u een diagnostische instelling toevoegt, voegt App Service app-instellingen toe aan uw app, waardoor een app opnieuw wordt gestart.
Ondersteunde logboektypen
Zie Ondersteunde resourcelogboeken voor Microsoft.Web voor een lijst met ondersteunde logboektypen en de bijbehorende beschrijvingen.
Aandachtspunten voor netwerken
Raadpleeg de officiële documentatie over diagnostische instellingen met betrekking tot doellimieten voor diagnostische instellingen voor beperkingen voor diagnostische instellingen.