Aktivera diagnostisk loggning för appar i Azure App Service

Ö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 diagnostisk loggning och lägger till instrumentation i ditt program, samt hur du kommer åt den information 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 Visual Studio finns i Felsöka Azure i Visual Studio.

Anteckning

Förutom loggningsanvisningarna i den här artikeln finns det en ny integrerad loggningsfunktion med Azure Monitoring. Du hittar mer information om den här funktionen i avsnittet Skicka loggar till Azure Monitor.

Typ Plattform Location Description
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öka och Spåra. Du kan välja hur utförlig du vill att loggning ska vara genom att ange allvarlighetsgraden när du aktiverar programloggning.
Webbserverloggning Windows App Service eller Azure Storage blobar RÅ HTTP-begärandedata i det utökade loggfilsformatet W3C. 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 uppstår som har HTTP-kod 400 eller högre. 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 platsprestanda eller isolera ett specifikt HTTP-fel. En mapp genereras för varje misslyckad begäran, som innehåller XML-loggfilen och XSL-formatmallen att visa loggfilen 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 kandu använda distributionsloggning för att avgöra varför skriptet misslyckas.

Anteckning

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

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

Aktivera programloggning (Windows)

Anteckning

Programloggning för Blob Storage kan bara använda lagringskonton i samma region som App Service

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

Välj för antingen Application Logging (filsystem) eller Application Logging (blob) eller båda.

Alternativet Filsystem är för tillfällig felsökning och stängs av om 12 timmar. Alternativet Blob är för långsiktig loggning och behöver en bloblagringscontainer att skriva loggar till. Blob-alternativet innehåller också ytterligare information i loggmeddelandena, till exempel ID:t för den ursprungliga VM-instansen av loggmeddelandet ( ), tråd-ID ( ) och en mer detaljerad InstanceId Tid tidsstämpel ( EventTickCount ).

Anteckning

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

Om du återskapar åtkomstnycklarna för lagringskontotmåste du återställa respektive loggningskonfiguration för att använda de uppdaterade åtkomstnycklarna. Gör så här:

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

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

Nivå Inkluderade kategorier
Disabled (Inaktiverat) Ingen
Fel Error, Critical
Varning Varning, Fel, Kritisk
Information Information, Varning, Fel, Kritisk
Verbose Trace, Debug, Info, Warning, Error, Critical (alla kategorier)

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

Anteckning

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 tillkomma efter resursborttagning.

Aktivera programloggning (Linux/container)

Om du vill aktivera programloggning för Linux-appar eller anpassade containerappar i Azure Portalgå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 i Azure Portalnavigerar du till din app och väljer App Service loggar.

För Webbserverloggning väljer du Storage att lagra loggar på bloblagring eller Filsystem för att lagra loggar App Service filsystemet.

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

Anteckning

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

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

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

Anteckning

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 tillkomma efter resursborttagning.

Logga detaljerade fel

Om du vill spara felsidan eller spårningen av misslyckade förfrågningar för Windows i Azure Portalgå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 det App Service filsystemet. Upp till 50 fel (filer/mappar) bevaras. När antalet HTML-filer överskrider 50 tas de äldsta felfilerna bort automatiskt.

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

Lägga till loggmeddelanden i kod

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

Strömningsloggar

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

Anteckning

Vissa typer av loggningsbuffertskrivningar till loggfilen, vilket kan resultera i händelser 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 dataströmmen före motsvarande HTTP-loggpost för sidbegäran.

I Azure Portal

Om du vill strömma loggar i Azure Portalnavigerar du till din app och väljer Logga ström.

I Cloud Shell

Om du vill strömma loggar live Cloud Shellanvänder du följande kommando:

Viktigt

Det här kommandot kanske inte fungerar med webbappar som finns i en Linux App Service-plan.

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

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

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

I lokal terminal

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 instruktionerna för Cloud Shell

Komma åt loggfiler

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

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

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

För Linux-/containerappar innehåller ZIP-filen konsolutdataloggar för både Docker-värden och Docker-containern. För en utskalade 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 Description
Programloggar /LogFiles/Application/ Innehåller en eller flera textfiler. Formatet på loggmeddelandena beror på vilken loggningsprovider du använder.
Spårningar av misslyckade förfrågningar /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 förfrågningar är att gå till appsidan i portalen. I den vänstra menyn väljer du Diagnostisera och lösa problem. Sök sedan efter Spårningsloggar för misslyckade förfrågningar och klicka sedan på ikonen för att bläddra och visa den spårning som du vill använda.
Webbserverloggar /LogFiles/http/RawLogs/ Innehåller textfiler formaterade med det utökade loggfilsformatet W3C. 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 kandu skapa diagnostikverktyg Inställningar skicka loggar till Storage-konton, Event Hubs och Log Analytics.

Diagnostik Inställningar

Loggtyper som stöds

I följande tabell visas loggtyper och beskrivningar som stöds:

Loggtyp Windows Windows Behållare Linux Linux-container Description
AppServiceConsoleLogs Java SE & Tomcat Ja Ja Ja Standardutdata och standardfel
AppServiceHTTPLogs Ja Ja Ja Ja Webbserverloggar
AppServiceEnvironmentPlatformLogs Yes Saknas Ja Ja App Service-miljön: skalning, konfigurationsändringar och statusloggar
AppServiceAuditLogs Ja Ja Ja Ja Inloggningsaktivitet via FTP och Kudu
AppServiceFileAuditLogs Ja Ja TBA TBA Filändringar som görs i platsinnehållet; endast tillgängligt för Premium och högre
AppServiceAppLogs ASP.NET & Tomcat 1 ASP.NET & Tomcat 1 Java SE & Tomcat Images 2 Java SE & Tomcat Images 2 Programloggar
AppServiceIPSecAuditLogs Ja Ja Ja Ja Begäranden från IP-regler
AppServicePlatformLogs TBA Ja Ja Ja Containeråtgärdsloggar
AppServiceAntivirusScanAuditLogs 3 Ja Ja Ja Ja Virusgenomsökningsloggar med Microsoft Defender for Cloud; endast tillgängligt för Premium-nivå

1 För Tomcat-appar lägger du TOMCAT_USE_STARTUP_BAT till i appinställningarna och anger den till false eller 0 . Måste ha den senaste Tomcat-versionen och använda java.util.logging.

2 För Java SE-appar lägger WEBSITE_AZMON_PREVIEW_ENABLED du till i appinställningarna och anger till eller true 1 .

3 Loggtypen AppServiceAntivirusScanAuditLogs är fortfarande i förhandsversion

Nästa steg