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 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:

  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
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:

  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 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 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:

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-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 den nya Azure Monitor-integreringen kan du skapa diagnostiska Inställningar för att skicka loggar till lagringskonton, händelsehubbar och Log Analytics.

Diagnostikinställningar

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.

Nästa steg