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 På 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:
- På fliken Konfigurera anger du respektive loggningsfunktion till Av. Spara inställningen.
- 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:
- På fliken Konfigurera anger du respektive loggningsfunktion till Av. Spara inställningen.
- 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:
ASP.NET program kan använda klassen System.Diagnostics.Trace för att logga information i programdiagnostikloggen. Ett exempel:
System.Diagnostics.Trace.TraceError("If you're seeing this, something bad happened");Som standard 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
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.

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