IIS günlüğü oluşturma ve yeniden yönlendirme
Uyarı
ASP.NET Core'un bu sürümü artık desteklenmiyor. Daha fazla bilgi için bkz . .NET ve .NET Core Destek İlkesi. Geçerli sürüm için bu makalenin .NET 8 sürümüne bakın.
ASP.NET Çekirdek Modülü, öğesinin ve öznitelikleri ayarlandıysa stdoutLogEnabled
stdout ve stdoutLogFile
stderr konsol çıkışını diske aspNetCore
yönlendirir. Yoldaki stdoutLogFile
tüm klasörler, günlük dosyası oluşturulduğunda modül tarafından oluşturulur. Uygulama havuzunun günlüklerin yazıldığı konuma yazma erişimi olmalıdır (yer tutucunun {APP POOL NAME}
uygulama havuzu adı olduğu yazma izni sağlamak için kullanınIIS AppPool\{APP POOL NAME}
).
İşlem geri dönüştürme/yeniden başlatma gerçekleşmediği sürece günlükler döndürülemez. Günlüklerin tükettiği disk alanını sınırlamak barındırıcının sorumluluğundadır.
stdout günlüğünün kullanılması yalnızca IIS'de barındırılırken veya Visual Studio ile IIS için geliştirme zamanı desteği kullanılırken uygulama başlatma sorunlarını gidermek için önerilir; yerel olarak hata ayıklarken ve uygulamayı IIS Express ile çalıştırırken değil.
Genel uygulama günlüğü amacıyla stdout günlüğünü kullanmayın. ASP.NET Core uygulamasında rutin günlük kaydı için günlük dosyası boyutunu sınırlayan ve günlükleri döndüren bir günlük kitaplığı kullanın. Daha fazla bilgi için bkz . üçüncü taraf günlük sağlayıcıları.
Günlük dosyası oluşturulduğunda zaman damgası ve dosya uzantısı otomatik olarak eklenir. Günlük dosyası adı, zaman damgası, işlem kimliği ve dosya uzantısı (.log
) alt çizgilerle ayrılmış yolun son kesimine stdoutLogFile
(genellikle stdout
) eklenerek oluşturulur. stdoutLogFile
Yol ile stdout
bitiyorsa, 5/2/2018 tarihinde 19:42:32'de oluşturulan 1934 PID'sine sahip bir uygulamanın günlüğü dosya adına stdout_20180205194132_1934.log
sahiptir.
stdoutLogEnabled
False ise, uygulama başlatma sırasında oluşan hatalar yakalanır ve olay günlüğüne 30 KB'a kadar yayılır. Başlatma işleminden sonra tüm ek günlükler atılır.
Aşağıdaki örnek aspNetCore
öğesi, göreli yolda .\log\
stdout günlüğünü yapılandırır. AppPool kullanıcısının identity sağlanan yola yazma izni olduğunu onaylayın.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
</aspNetCore>
Azure Uygulaması Hizmeti dağıtımı için bir uygulama yayımlarken, Web SDK değeri stdoutLogFile
olarak \\?\%home%\LogFiles\stdout
ayarlar. Ortam %home
değişkeni, Azure Uygulaması Hizmeti tarafından barındırılan uygulamalar için önceden tanımlanmıştır.
Günlük filtresi kuralları oluşturmak için ASP.NET Core günlük kaydı belgelerinin Kodda günlük filtresi kurallarını uygulama bölümüne bakın.
Yol biçimleri hakkında daha fazla bilgi için bkz . Windows sistemlerinde dosya yolu biçimleri.
Gelişmiş tanılama günlükleri
ASP.NET Çekirdek Modülü, gelişmiş tanılama günlükleri sağlamak için yapılandırılabilir. <handlerSettings>
öğesini öğesinde <aspNetCore>
web.config
öğesine ekleyin. ayarıTRACE
, debugLevel
tanılama bilgilerinin daha yüksek aslına uygun olmasını sağlar:
<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>
Yoldaki tüm klasörler (logs
yukarıdaki örnekte) günlük dosyası oluşturulduğunda modül tarafından oluşturulur. Uygulama havuzunun günlüklerin yazıldığı konuma yazma erişimi olmalıdır (yer tutucunun {APP POOL NAME}
uygulama havuzu adı olduğu yazma izni sağlamak için kullanınIIS AppPool\{APP POOL NAME}
).
Hata ayıklama düzeyi (debugLevel
) değerleri hem düzeyi hem de konumu içerebilir.
Düzeyler (en azdan en ayrıntılı düzeye sırasıyla):
- HATA
- UYARI
- INFO
- TRACE
Konumlar (birden çok konuma izin verilir):
- KONSOL
- EVENTLOG
- DOSYA
İşleyici ayarları ortam değişkenleri aracılığıyla da sağlanabilir:
ASPNETCORE_MODULE_DEBUG_FILE
: Hata ayıklama günlük dosyasının yolu. (Varsayılan:aspnetcore-debug.log
)ASPNETCORE_MODULE_DEBUG
: Hata ayıklama düzeyi ayarı.
Uyarı
Bir sorunu gidermek için hata ayıklama günlüğünü dağıtımda gerekenden daha uzun süre etkin bırakmayın. Günlüğün boyutu sınırlı değildir. Hata ayıklama günlüğünün etkin durumda bırakılması, kullanılabilir disk alanını tüketebilir ve sunucu veya uygulama hizmetini kilitleyebilir.
Dosyadaki öğenin bir örneği için bkz. ile web.config
ASP.NET Çekirdek Modülü yapılandırmasıweb.config
.aspNetCore
ASP.NET Core