Günlük oluşturma ve yeniden yönlendirme
ASP.NET Core Modülü, öğenin ve öznitelikleri ayarlanırsa 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 önerilmez.
Genel uygulama günlüğü amacıyla stdout günlüğünü kullanmayın. ASP.NET Core bir uygulamada 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
biterse, 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ı kimliğinin sağlanan yola yazma iznine sahip olduğunu onaylayın.
<aspNetCore processPath="dotnet"
arguments=".\MyApp.dll"
stdoutLogEnabled="true"
stdoutLogFile=".\logs\stdout"
hostingModel="inprocess">
</aspNetCore>
Bir uygulamayı Azure App Service dağıtımı için yayımlarken Web SDK'sı stdoutLogFile
değeri olarak \\?\%home%\LogFiles\stdout
ayarlar. Ortam %home
değişkeni, Azure App Service 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üğü 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 Core 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. debugLevel
ayarıTRACE
, 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
önceki ö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ıya sırasıyla):
- HATA
- UYARI
- BİLGİ
- 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 dağıtımda hata ayıklama günlüğünü 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 sunucuyu veya uygulama hizmetini kilitleyebilir.
Dosyadaki öğenin bir örneği aspNetCore
için bkz. ile ASP.NET Core Modülü web.config
Yapılandırmasıweb.config
.