Skapande och omdirigering av IIS-logg
Anteckning
Det här är inte den senaste versionen av den här artikeln. Den aktuella versionen finns i den .NET 9-versionen av den här artikeln.
Varning
Den här versionen av ASP.NET Core stöds inte längre. Mer information finns i .NET och .NET Core Support Policy. För den aktuella versionen, se .NET 9-versionen av den här artikeln.
Viktig
Den här informationen gäller en förhandsversionsprodukt som kan ändras avsevärt innan den släpps kommersiellt. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, med avseende på den information som tillhandahålls här.
Den aktuella versionen finns i den .NET 9-versionen av den här artikeln.
ASP.NET Core Module omdirigerar stdout- och stderr-konsolutdata till disk om stdoutLogEnabled
- och stdoutLogFile
-attributen för aspNetCore
-elementet har angetts. Alla mappar i den stdoutLogFile
sökvägen skapas av modulen när loggfilen skapas. Apppoolen måste ha skrivbehörighet till den plats där loggarna skrivs (använd IIS AppPool\{APP POOL NAME}
för att ge skrivbehörighet, där platshållaren {APP POOL NAME}
är namnet på apppoolen).
Loggar roteras inte, såvida inte processåterställningen/omstarten sker. Det är värdorganisationens ansvar att begränsa det diskutrymme som loggarna förbrukar.
Användning av stdout-loggen rekommenderas endast för felsökning av startproblem för appar när du är värd för IIS eller när du använder stöd för utvecklingstid för IIS med Visual Studio, inte när du felsöker lokalt och kör appen med IIS Express.
Använd inte stdout-loggen för allmänna apploggningsändamål. För rutinmässig loggning i en ASP.NET Core-app använder du ett loggningsbibliotek som begränsar loggfilens storlek och roterar loggar. För mer information, se tredjeparts loggningsleverantörer.
En tidsstämpel och filnamnstillägg läggs till automatiskt när loggfilen skapas. Loggfilens namn skapas genom att tidsstämpeln, process-ID och filnamnstillägget (.log
) läggs till i det sista segmentet av sökvägen stdoutLogFile
(vanligtvis stdout
) avgränsat med understreck. Om stdoutLogFile
-sökvägen slutar med stdout
har en logg för en app med en PID på 1934 som skapades den 2/5/2018 kl. 19:42:32 filnamnet stdout_20180205194132_1934.log
.
Om stdoutLogEnabled
är falskt, lagras de fel som inträffar vid appstart och skickas till händelseloggen upp till 30 KB. Efter start ignoreras alla ytterligare loggar.
Följande aspNetCore
-element i exemplet konfigurerar stdout-loggning på den relativa sökvägen .\log\
. Bekräfta att AppPool-användaridentiteten har behörighet att skriva till den angivna sökvägen.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
</aspNetCore>
När du publicerar en app för Azure App Service-distribution anger Web SDK stdoutLogFile
värdet till \\?\%home%\LogFiles\stdout
. Miljövariabeln %home
är fördefinierad för appar som hanteras av Azure App Service.
Information om hur du skapar regler för loggningsfilter finns i avsnittet Tillämpa loggfilterregler i kod i dokumentationen om ASP.NET Core-loggning.
Mer information om sökvägsformat finns i Filsökvägsformat i Windows-system.
Förbättrade diagnostikloggar
ASP.NET Core-modulen kan konfigureras för att tillhandahålla förbättrade diagnostikloggar. Lägg till elementet <handlerSettings>
i elementet <aspNetCore>
i web.config
. Om du ställer in debugLevel
på TRACE
visas en högre återgivning av diagnostikinformation:
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="false"
stdoutLogFile="\\?\%home%\LogFiles\stdout"
hostingModel="inprocess">
<handlerSettings>
<handlerSetting name="debugFile" value=".\logs\aspnetcore-debug.log" />
<handlerSetting name="debugLevel" value="FILE,TRACE" />
</handlerSettings>
</aspNetCore>
Alla mappar i sökvägen (logs
i föregående exempel) skapas av modulen när loggfilen skapas. Apppoolen måste ha skrivbehörighet till den plats där loggarna skrivs (använd IIS AppPool\{APP POOL NAME}
för att ge skrivbehörighet, där platshållaren {APP POOL NAME}
är namnet på apppoolen).
Felsökningsnivån (debugLevel
) kan innehålla både nivån och platsen.
Nivåer (i ordning från minst till mest utförlig):
- FEL
- VARNING
- INFORMATION
- SPÅRA
Platser (flera platser tillåts):
- KONSOL
- EVENTLOG
- FIL
Hanterarens inställningar kan också anges via miljövariabler:
-
ASPNETCORE_MODULE_DEBUG_FILE
: Sökväg till felsökningsloggfilen. (Standard:aspnetcore-debug.log
) -
ASPNETCORE_MODULE_DEBUG
: Inställning för felsökningsnivå.
Varning
Låt inte låta felsökningsloggningen vara aktiverad i distributionen längre än vad som krävs för att felsöka ett problem. Loggens storlek är inte begränsad. Om felsökningsloggen är aktiverad kan det tillgängliga diskutrymmet ta slut, vilket kan leda till att servern eller apptjänsten kraschar.
Se Konfiguration av ASP.NET Core-modul med web.config
för ett exempel på elementet aspNetCore
i web.config
-filen.
ASP.NET Core