Aktivera diagnostisk loggning för appar i Azure App Service
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-portalen 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
Utöver loggningsinstruktionerna i den här artikeln finns det en ny, integrerad loggningsfunktion med Azure Monitoring. Mer information om den här funktionen finns i avsnittet Skicka loggar till Azure Monitor .
Typ | Plattform | Plats | 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 som har 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. Det är användbart om du vill förbättra webbplatsens prestanda eller isolera ett specifikt HTTP-fel. En mapp genereras för varje misslyckad begäran, som 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-portalen 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, 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 |
Utförlig | 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-portalen 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-portalen 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 den misslyckade spårningen av begäranden för Windows-appar i Azure-portalen går du till din app 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/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 Komma 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 oordningshändelser i strö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-portalen 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 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 .
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 sedan 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. Den här informationen kan läsas 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 den nya Azure Monitor-integreringen kan du skapa diagnostiska Inställningar för att skicka loggar till lagringskonton, händelsehubbar och Log Analytics.
Loggtyper som stöds
I följande tabell visas de loggtyper och beskrivningar som stöds:
Loggnamn | Loggtyp | Windows | Windows-container | Linux | Linux-container | beskrivning |
---|---|---|---|---|---|---|
App Service-konsolloggar | AppServiceConsoleLogs | Java SE och Tomcat | Ja | Ja | Ja | Standardutdata och standardfel 3 |
HTTP-loggar | AppServiceHTTPLogs | Ja | Ja | Ja | Ja | Webbserverloggar |
App Service-miljön plattformsloggar | AppServiceEnvironmentPlatformLogs | Ja | Ej tillämpligt | Ja | Ja | App Service-miljön: skalning, konfigurationsändringar och statusloggar |
Åtkomst till granskningsloggar | AppServiceAuditLogs | Ja | Ja | Ja | Ja | Inloggningsaktivitet via FTP och Kudu |
Granskningsloggar för ändring av webbplatsinnehåll | AppServiceFileAuditLogs | Ja | Ja | Kommer senare | Kommer senare | Filändringar som gjorts i webbplatsinnehållet. endast tillgängligt för Premium-nivå och senare |
App Service-programloggar | AppServiceAppLogs | ASP.NET, .NET Core och Tomcat 1 | ASP.NET & Tomcat 1 | .NET Core, Java, SE och Tomcat Blessed Images 2 | Java SE och Tomcat Blessed Images 2 | Programloggar 3 |
IPSecurity-granskningsloggar | AppServiceIPSecAuditLogs | Ja | Ja | Ja | Ja | Begäranden från IP-regler |
App Service Platform-loggar | AppServicePlatformLogs | Kommer senare | Ja | Ja | Ja | Containeråtgärdsloggar |
Rapportera antivirusgranskningsloggar | AppServiceAntivirusScanAuditLogs 4 | Ja | Ja | Ja | Ja | Virusgenomsökningsloggar med hjälp av Microsoft Defender för molnet; endast tillgängligt för Premium-nivå |
1 För Tomcat-appar lägger du till TOMCAT_USE_STARTUP_BAT
i appinställningarna och ställer in den på false
eller 0
. Du måste ha den senaste Tomcat-versionen och använda java.util.logging.
2 För Java SE-appar lägger du till WEBSITE_AZMON_PREVIEW_ENABLED
i appinställningarna och ställer in den på true
eller till 1
.
3 Den aktuella loggningsgränsen är inställd på 100 loggar per minut.
4 AppServiceAntivirusScanAuditLogs-loggtypen är fortfarande i förhandsversion
Nätverksöverväganden
Information om begränsningar för diagnostik Inställningar finns i den officiella dokumentationen om diagnostik Inställningar om målgränser.