Dela via


Aktivera diagnostisk loggning för appar i Azure App Service

Kommentar

Från och med den 1 juni 2024 har alla nyligen skapade App Service-appar möjlighet att generera ett unikt standardvärdnamn med hjälp av namngivningskonventionen <app-name>-<random-hash>.<region>.azurewebsites.net. Befintliga appnamn förblir oförändrade.

Exempel: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Mer information finns i Unikt standardvärdnamn för App Service-resurs.

Den här videon visar hur du aktiverar diagnostikloggning för appar.

Stegen i videon beskrivs också i följande avsnitt.

Översikt

Azure tillhandahåller inbyggd diagnostik som hjälper dig att felsöka en App Service-app. I den här artikeln får du lära dig hur du aktiverar diagnostikloggning och lägger till instrumentation i ditt program, samt hur du kommer åt informationen som loggas av Azure.

Den här artikeln använder Azure Portal och Azure CLI för att arbeta med diagnostikloggar. Information om hur du arbetar med diagnostikloggar med Hjälp av Visual Studio finns i Felsöka Azure i Visual Studio.

Kommentar

Förutom loggningsinstruktionerna i den här artikeln kan du även använda funktionen för integrerad loggning i Azure Monitor. Mer information om den här funktionen finns i avsnittet Skicka loggar till Azure Monitor .

Typ Plattform Logglagringsplats beskrivning
Programloggning Windows, Linux App Service-filsystem och/eller Azure Storage-blobar Loggar meddelanden som genereras av programkoden. Meddelandena kan genereras av det webbramverk du väljer, eller från din programkod direkt med hjälp av standardloggningsmönstret för ditt språk. Varje meddelande tilldelas någon av följande kategorier: Kritisk, Fel, Varning, Information, Felsökning och Spårning. Du kan välja hur utförlig du vill att loggningen ska vara genom att ange allvarlighetsgraden när du aktiverar programloggning.
Webbserverloggning Windows App Service-filsystem eller Azure Storage-blobar Rådata för HTTP-begäranden i W3C-format för utökad loggfil. Varje loggmeddelande innehåller data som HTTP-metoden, resurs-URI, klient-IP, klientport, användaragent, svarskod och så vidare.
Detaljerade felmeddelanden Windows App Service-filsystem Kopior av .htm felsidor som skulle ha skickats till klientwebbläsaren. Av säkerhetsskäl bör detaljerade felsidor inte skickas till klienter i produktion, men App Service kan spara felsidan varje gång ett programfel inträffar med HTTP-kod 400 eller senare. Sidan kan innehålla information som kan hjälpa dig att avgöra varför servern returnerar felkoden.
Spårning av misslyckade förfrågningar Windows App Service-filsystem Detaljerad spårningsinformation om misslyckade begäranden, inklusive en spårning av de IIS-komponenter som används för att bearbeta begäran och den tid det tar i varje komponent. Den här informationen är användbar om du vill förbättra webbplatsens prestanda eller isolera ett specifikt HTTP-fel. En mapp genereras för varje misslyckad begäran. Mappen innehåller XML-loggfilen och XSL-formatmallen som loggfilen ska visas med.
Distributionsloggning Windows, Linux App Service-filsystem Loggar för när du publicerar innehåll till en app. Distributionsloggning sker automatiskt och det finns inga konfigurerbara inställningar för distributionsloggning. Det hjälper dig att avgöra varför en distribution misslyckades. Om du till exempel använder ett anpassat distributionsskript kan du använda distributionsloggning för att avgöra varför skriptet misslyckas.

När loggarna lagras i App Service-filsystemet omfattas de av det tillgängliga lagringsutrymmet för din prisnivå (se App Service-gränser).

Kommentar

App Service tillhandahåller ett dedikerat, interaktivt diagnostikverktyg som hjälper dig att felsöka ditt program. Mer information finns i Översikt över Azure App Service-diagnostik.

Dessutom kan du använda andra Azure-tjänster för att förbättra loggnings- och övervakningsfunktionerna i din app, till exempel Azure Monitor.

Aktivera programloggning (Windows)

Om du vill aktivera programloggning för Windows-appar i Azure Portal går du till din app och väljer App Service-loggar.

Välj för antingen Programloggning (Filsystem) eller Programloggning (Blob) eller båda.

Alternativet Filsystem är för tillfällig felsökning och inaktiverar sig själv om 12 timmar. Alternativet Blob är för långsiktig loggning och behöver en bloblagringscontainer att skriva loggar till. Alternativet Blob innehåller även ytterligare information i loggmeddelandena, till exempel ID för den virtuella datorns ursprungliga instans av loggmeddelandet (InstanceId), tråd-ID (Tid) och en mer detaljerad tidsstämpel (EventTickCount).

Kommentar

För närvarande kan endast .NET-programloggar skrivas till bloblagringen. Java-, PHP-, Node.js- och Python-programloggar kan bara lagras i App Service-filsystemet (utan kodändringar för att skriva loggar till extern lagring).

Om du återskapar lagringskontots åtkomstnycklar måste du också återställa respektive loggningskonfiguration för att använda de uppdaterade åtkomstnycklarna. Så här gör du:

  1. På fliken Konfigurera anger du respektive loggningsfunktion till Av. Spara inställningen.
  2. Aktivera loggning till lagringskontobloben igen. Spara inställningen.

Välj den nivå eller den informationsnivå som ska loggas. I följande tabell visas de loggkategorier som ingår på varje nivå:

Nivå Inkluderade kategorier
Disabled (Inaktiverat) Ingen
Fel Fel, kritiskt
Varning! Varning, fel, kritisk
Information Information, varning, fel, kritisk
Mångordig Trace, Debug, Info, Warning, Error, Critical (alla kategorier)

När du är klar väljer du Spara.

Kommentar

Om du skriver loggar till blobar gäller inte längre kvarhållningsprincipen om du tar bort appen utan behåller loggarna i blobarna. Mer information finns i Kostnader som kan uppstå efter resursborttagning.

Aktivera programloggning (Linux/Container)

Om du vill aktivera programloggning för Linux-appar eller anpassade containrar i Azure Portal går du till din app och väljer App Service-loggar.

I Programloggning väljer du Filsystem.

I Kvot (MB) anger du diskkvoten för programloggarna. I Kvarhållningsperiod (dagar) anger du hur många dagar loggarna ska behållas.

När du är klar väljer du Spara.

Aktivera webbserverloggning

Om du vill aktivera webbserverloggning för Windows-appar i Azure Portal går du till din app och väljer App Service-loggar.

För webbserverloggning väljer du Lagring för att lagra loggar på bloblagring eller Filsystem för att lagra loggar i App Service-filsystemet.

I Kvarhållningsperiod (dagar) anger du hur många dagar loggarna ska behållas.

Kommentar

Om du återskapar lagringskontots åtkomstnycklar måste du återställa respektive loggningskonfiguration för att använda de uppdaterade nycklarna. Så här gör du:

  1. På fliken Konfigurera anger du respektive loggningsfunktion till Av. Spara inställningen.
  2. Aktivera loggning till lagringskontobloben igen. Spara inställningen.

När du är klar väljer du Spara.

Kommentar

Om du skriver loggar till blobar gäller inte längre kvarhållningsprincipen om du tar bort appen utan behåller loggarna i blobarna. Mer information finns i Kostnader som kan uppstå efter resursborttagning.

Logga detaljerade fel

Om du vill spara felsidan eller misslyckad spårning av begäranden för Windows-appar i Azure Portal går du till appen och väljer App Service-loggar.

Under Detaljerad felloggning eller spårning av misslyckade förfrågningar väljer du och sedan Spara.

Båda typerna av loggar lagras i App Service-filsystemet. Upp till 50 fel (filer eller mappar) behålls. När antalet HTML-filer överskrider 50 tas de äldsta felfilerna bort automatiskt.

Spårningsfunktionen för misslyckade förfrågningar samlar som standard in en logg över begäranden som misslyckades med HTTP-statuskoder mellan 400 och 600. Om du vill ange anpassade regler kan du åsidosätta <traceFailedRequests> avsnittet i filen web.config .

Lägga till loggmeddelanden i kod

I programkoden använder du de vanliga loggningsfunktionerna för att skicka loggmeddelanden till programloggarna. Till exempel:

Strömningsloggar

Innan du strömmar loggar i realtid aktiverar du den loggtyp som du vill använda. All information som skrivs till konsolens utdata eller filer som slutar i .txt, .log eller .htm som lagras i katalogen /home/LogFiles (D:\home\LogFiles) strömmas av App Service.

Kommentar

Vissa typer av loggningsbuffert skrivs till loggfilen, vilket kan resultera i att händelser visas i fel ordning i dataströmmen. Till exempel kan en programloggpost som inträffar när en användare besöker en sida visas i strömmen före motsvarande HTTP-loggpost för sidbegäran.

I Azure-portalen

Om du vill strömma loggar i Azure Portal går du till din app och väljer Loggström.

I Cloud Shell

Om du vill strömma loggar live i Cloud Shell använder du följande kommando:

Viktigt!

Det här kommandot kanske inte fungerar med webbappar som finns i en Linux-apptjänstplan.

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

Om du vill filtrera specifika loggtyper, till exempel HTTP, använder du parametern --provider . Till exempel:

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

I den lokala terminalen

Om du vill strömma loggar i den lokala konsolen installerar du Azure CLI och loggar in på ditt konto. När du har loggat in följer du anvisningarna för Cloud Shell.

Komma åt loggfiler

Om du konfigurerar alternativet Azure Storage-blobar för en loggtyp behöver du ett klientverktyg som fungerar med Azure Storage. Mer information finns i Azure Storage-klientverktyg.

För loggar som lagras i App Service-filsystemet är det enklaste sättet att komma åt filerna att ladda ned ZIP-filen i webbläsaren på:

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

För Linux/anpassade containrar innehåller ZIP-filen konsolutdataloggar för både Docker-värden och Docker-containern. För en utskalad app innehåller ZIP-filen en uppsättning loggar för varje instans. I App Service-filsystemet är dessa loggfiler innehållet i katalogen /home/LogFiles . Distributionsloggar lagras i /site/deployments/.

För Windows-appar innehåller ZIP-filen innehållet i katalogen D:\Home\LogFiles i App Service-filsystemet. Den har följande struktur:

Loggtyp Katalog beskrivning
Programloggar /LogFiles/Application/ Innehåller en eller flera textfiler. Loggmeddelandenas format beror på vilken loggningsprovider du använder.
Spårning av misslyckade begäranden /LogFiles/W3SVC#########/ Innehåller XML-filer och en XSL-fil. Du kan visa de formaterade XML-filerna i webbläsaren.
Detaljerade felloggar /LogFiles/DetailedErrors/ Innehåller HTM-felfiler. Du kan visa HTM-filerna i webbläsaren.
Ett annat sätt att visa spårningar av misslyckade begäranden är att gå till appsidan i portalen. På den vänstra menyn väljer du Diagnostisera och lösa problem, söker efter spårningsloggar för misslyckade förfrågningar och klickar sedan på ikonen för att bläddra och visa den spårning du vill ha.
Webbserverloggar /LogFiles/http/RawLogs/ Innehåller textfiler som har formaterats med W3C-format för utökad loggfil. Du kan läsa dessa filer med hjälp av en textredigerare eller ett verktyg som Log Parser.
App Service stöder inte fälten s-computername, s-ipeller cs-version .
Distributionsloggar /LogFiles/Git/ och /deployments/ Innehåller loggar som genereras av de interna distributionsprocesserna samt loggar för Git-distributioner.

Skicka loggar till Azure Monitor

Med Azure Monitor-integrering kan du skapa diagnostikinställningar för att skicka loggar till lagringskonton, händelsehubbar och Log Analytics. När du lägger till en diagnostikinställning lägger App Service till appinställningar i din app, vilket utlöser en omstart av appen.

Diagnostikinställningar

Loggtyper som stöds

En lista över loggtyper som stöds och deras beskrivningar finns i Resursloggar som stöds för Microsoft.Web.

Nätverksöverväganden

Information om begränsningar för diagnostikinställningar finns i den officiella dokumentationen om diagnostikinställningar om målgränser.

Nästa steg