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 stdoutbiterse, 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.logsahiptir.

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\stdoutayarlar. 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.