Vytvoření a přesměrování protokolu služby IIS
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Upozorňující
Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v tématu .NET a .NET Core Zásady podpory. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Důležité
Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Modul ASP.NET Core přesměruje výstup konzoly stdout a stderr na disk, pokud stdoutLogEnabled
jsou nastaveny atributy stdoutLogFile
elementu aspNetCore
. Všechny složky v cestě stdoutLogFile
vytvoří modul při vytvoření souboru protokolu. Fond aplikací musí mít přístup k zápisu do umístění, kde se protokoly zapisují (slouží IIS AppPool\{APP POOL NAME}
k poskytnutí oprávnění k zápisu, kde zástupný symbol {APP POOL NAME}
je název fondu aplikací).
Protokoly se nestřídají, pokud nedojde k recyklaci nebo restartování procesu. Je zodpovědností hostitele omezit místo na disku, které protokoly spotřebovávají.
Použití protokolu stdout se doporučuje pouze při řešení potíží se spuštěním aplikace při hostování ve službě IIS nebo při použití podpory doby vývoje pro službu IIS se sadou Visual Studio, nikoli při místním ladění a spuštění aplikace pomocí služby IIS Express.
Nepoužívejte protokol stdout pro obecné účely protokolování aplikace. Pro rutinní protokolování v aplikaci ASP.NET Core použijte knihovnu protokolování, která omezuje velikost souboru protokolu a obměňuje protokoly. Další informace najdete v tématu Zprostředkovatelé protokolování třetích stran.
Při vytváření souboru protokolu se automaticky přidají časové razítko a přípona souboru. Název souboru protokolu se skládá připojením časového razítka, ID procesu a přípony souboru (.log
) k poslednímu stdoutLogFile
segmentu cesty (obvykle stdout
) odděleného podtržítky. Pokud cesta stdoutLogFile
končí stdout
, protokol aplikace s PID 1934 vytvořený 2. 5. 2018 v 19:42:32 má název stdout_20180205194132_1934.log
souboru .
Pokud stdoutLogEnabled
je false, chyby, ke kterým dochází při spuštění aplikace, se zachytí a vygenerují do protokolu událostí až do 30 kB. Po spuštění se všechny další protokoly zahodí.
Následující ukázkový aspNetCore
element nakonfiguruje protokolování stdout v relativní cestě .\log\
. Ověřte, že uživatel identity AppPool má oprávnění k zápisu do zadané cesty.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
</aspNetCore>
Při publikování aplikace pro nasazení služby Aplikace Azure Service nastaví stdoutLogFile
webová sada SDK hodnotu na \\?\%home%\LogFiles\stdout
hodnotu . Proměnná %home
prostředí je předdefinovaná pro aplikace hostované službou Aplikace Azure Service.
Pokud chcete vytvořit pravidla filtru protokolování, přečtěte si část Kód pravidla filtru protokolu v dokumentaci k protokolování ASP.NET Core.
Další informace o formátech cest naleznete v tématu Formáty cesty k souborům v systémech Windows.
Rozšířené diagnostické protokoly
Modul ASP.NET Core je konfigurovatelný tak, aby poskytoval rozšířené diagnostické protokoly. <handlerSettings>
Přidejte prvek do elementu <aspNetCore>
v souboru web.config
. debugLevel
Nastavení pro TRACE
zveřejnění vyšší přesnosti diagnostických informací:
<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>
Všechny složky v cestě (logs
v předchozím příkladu) vytvoří modul při vytvoření souboru protokolu. Fond aplikací musí mít přístup k zápisu do umístění, kde se protokoly zapisují (slouží IIS AppPool\{APP POOL NAME}
k poskytnutí oprávnění k zápisu, kde zástupný symbol {APP POOL NAME}
je název fondu aplikací).
Hodnoty úrovnědebugLevel
ladění můžou zahrnovat úroveň i umístění.
Úrovně (v pořadí od nejméně po většinu podrobných):
- CHYBA
- UPOZORNĚNÍ
- INFO
- TRACE
Umístění (je povoleno více umístění):
- KONZOLA
- EVENTLOG
- SOUBOR
Nastavení obslužné rutiny lze také poskytnout prostřednictvím proměnných prostředí:
ASPNETCORE_MODULE_DEBUG_FILE
: Cesta k souboru protokolu ladění. (Výchozí:aspnetcore-debug.log
)ASPNETCORE_MODULE_DEBUG
: Nastavení na úrovni ladění.
Upozorňující
Nezanechujte protokolování ladění povolené v nasazení déle, než je nutné k řešení potíží. Velikost protokolu není omezená. Ponechání povoleného protokolu ladění může vyčerpat dostupné místo na disku a dojít k chybě serveru nebo služby App Service.