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 På 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:
- På fliken Konfigurera anger du respektive loggningsfunktion till Av. Spara inställningen.
- 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:
- På fliken Konfigurera anger du respektive loggningsfunktion till Av. Spara inställningen.
- 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 På 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:
ASP.NET program kan använda klassen System.Diagnostics.Trace för att logga information till programdiagnostikloggen. Till exempel:
System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");
Som standard använder ASP.NET Core loggningsprovidern Microsoft.Extensions.Logging.AzureAppServices . Mer information finns i ASP.NET Core-loggning i Azure. Information om WebJobs SDK-loggning finns i Kom igång med Azure WebJobs SDK.
Python-program kan använda OpenCensus-paketet för att skicka loggar till programdiagnostikloggen.
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-ip eller 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.
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.