ASP.NET Core'da W3CLogger

W3CLogger, günlük dosyalarını W3C standart biçiminde yazan bir ara yazılımdır. Günlükler HTTP istekleri ve HTTP yanıtları hakkında bilgi içerir. W3CLogger şu günlükleri sağlar:

  • HTTP isteği bilgileri
  • Ortak özellikler
  • Üst Bilgiler
  • HTTP yanıt bilgileri
  • İstek/yanıt çifti hakkındaki meta veriler (başlatıldığı tarih/saat, geçen süre)

W3CLogger, aşağıdakiler için çeşitli senaryolarda değerlidir:

  • Gelen istekler ve yanıtlar hakkındaki bilgileri kaydetme.
  • İsteğin ve yanıtın hangi bölümlerinin günlüğe kaydedildiği filtreleme.
  • Günlüğe kaydedilecek üst bilgileri filtreleme.

W3CLogger bir uygulamanın performansını düşürebilir. Günlüğe kaydedilecek alanları seçerken performans etkisini göz önünde bulundurun; daha fazla özellik günlüğe kaydettiğinizde, performans düşüşleri artar. Seçili günlük özelliklerinin performans etkisini test edin.

Uyarı

W3CLogger potansiyel olarak kişisel bilgileri (PII) günlüğe kaydedebilir. Riski göz önünde bulundurun ve hassas bilgileri günlüğe kaydetmekten kaçının. Varsayılan olarak, PII içerebilen alanlar günlüğe kaydedilmez.

W3CLogger'u etkinleştirme

W3CLogger ara yazılımını ekleyen UseW3CLogging ile W3CLogger'ı etkinleştirme:

var app = builder.Build();

app.UseW3CLogging();

app.UseRouting();

Varsayılan olarak, W3CLogger yol, durum kodu, tarih, saat ve protokol gibi ortak özellikleri günlüğe kaydeder. Tek bir istek/yanıt çifti hakkındaki tüm bilgiler aynı satıra yazılır.

#Version: 1.0
#Start-Date: 2021-09-29 22:18:28
#Fields: date time c-ip s-computername s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status time-taken cs-version cs-host cs(User-Agent) cs(Referer)
2021-09-29 22:18:28 ::1 DESKTOP-LH3TLTA ::1 5000 GET / - 200 59.9171 HTTP/1.1 localhost:5000 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/93.0.4577.82+Safari/537.36 -
2021-09-29 22:18:28 ::1 DESKTOP-LH3TLTA ::1 5000 GET / - 200 0.1802 HTTP/1.1 localhost:5000 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/93.0.4577.82+Safari/537.36 -
2021-09-29 22:18:30 ::1 DESKTOP-LH3TLTA ::1 5000 GET / - 200 0.0966 HTTP/1.1 localhost:5000 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/93.0.4577.82+Safari/537.36 -

W3CLogger seçenekleri

W3CLogger ara yazılımını yapılandırmak için Program.cs içinde AddW3CLogging çağrısı yapın:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddW3CLogging(logging =>
{
    // Log all W3C fields
    logging.LoggingFields = W3CLoggingFields.All;

    logging.FileSizeLimit = 5 * 1024 * 1024;
    logging.RetainedFileCountLimit = 2;
    logging.FileName = "MyLogFile";
    logging.LogDirectory = @"C:\logs";
    logging.FlushInterval = TimeSpan.FromSeconds(2);
});

LoggingFields

W3CLoggerOptions.LoggingFields isteğin belirli bölümlerini ile günlüğe verilen yanıtı ve bağlantıyla ilgili diğer bilgileri yapılandıran bir bit bayrağı numaralandırmasıdır. LoggingFields, UserName ve Cookie dışındaki tüm olası alanları içerecek şekilde varsayılan olarak ayarlanır. Kullanılabilir alanların bir tam listesi için, bkz. W3CLoggingFields.

W3CLogger, günlük dosyalarını W3C standart biçiminde yazan bir ara yazılımdır. Günlükler HTTP istekleri ve HTTP yanıtları hakkında bilgi içerir. W3CLogger şu günlükleri sağlar:

  • HTTP isteği bilgileri
  • Ortak özellikler
  • Üst Bilgiler
  • HTTP yanıt bilgileri
  • İstek/yanıt çifti hakkındaki meta veriler (başlatıldığı tarih/saat, geçen süre)

W3CLogger, aşağıdakiler için çeşitli senaryolarda değerlidir:

  • Gelen istekler ve yanıtlar hakkındaki bilgileri kaydetme.
  • İsteğin ve yanıtın hangi bölümlerinin günlüğe kaydedildiği filtreleme.
  • Günlüğe kaydedilecek üst bilgileri filtreleme.

W3CLogger bir uygulamanın performansını düşürebilir. Günlüğe kaydedilecek alanları seçerken performans etkisini göz önünde bulundurun; daha fazla özellik günlüğe kaydettiğinizde, performans düşüşleri artar. Seçili günlük özelliklerinin performans etkisini test edin.

Uyarı

W3CLogger potansiyel olarak kişisel bilgileri (PII) günlüğe kaydedebilir. Riski göz önünde bulundurun ve hassas bilgileri günlüğe kaydetmekten kaçının. Varsayılan olarak, PII içerebilen alanlar günlüğe kaydedilmez.

W3CLogger'u etkinleştirme

W3CLogger ara yazılımını ekleyen UseW3CLogging ile W3CLogger'ı etkinleştirme:

var app = builder.Build();

app.UseW3CLogging();

app.UseRouting();

Varsayılan olarak, W3CLogger yol, durum kodu, tarih, saat ve protokol gibi ortak özellikleri günlüğe kaydeder. Tek bir istek/yanıt çifti hakkındaki tüm bilgiler aynı satıra yazılır.

#Version: 1.0
#Start-Date: 2021-09-29 22:18:28
#Fields: date time c-ip s-computername s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status time-taken cs-version cs-host cs(User-Agent) cs(Referer)
2021-09-29 22:18:28 ::1 DESKTOP-LH3TLTA ::1 5000 GET / - 200 59.9171 HTTP/1.1 localhost:5000 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/93.0.4577.82+Safari/537.36 -
2021-09-29 22:18:28 ::1 DESKTOP-LH3TLTA ::1 5000 GET / - 200 0.1802 HTTP/1.1 localhost:5000 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/93.0.4577.82+Safari/537.36 -
2021-09-29 22:18:30 ::1 DESKTOP-LH3TLTA ::1 5000 GET / - 200 0.0966 HTTP/1.1 localhost:5000 Mozilla/5.0+(Windows+NT+10.0;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/93.0.4577.82+Safari/537.36 -

W3CLogger seçenekleri

W3CLogger ara yazılımını yapılandırmak için Program.cs içinde AddW3CLogging çağrısı yapın:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddW3CLogging(logging =>
{
    // Log all W3C fields
    logging.LoggingFields = W3CLoggingFields.All;

    logging.AdditionalRequestHeaders.Add("x-forwarded-for");
    logging.AdditionalRequestHeaders.Add("x-client-ssl-protocol");
    logging.FileSizeLimit = 5 * 1024 * 1024;
    logging.RetainedFileCountLimit = 2;
    logging.FileName = "MyLogFile";
    logging.LogDirectory = @"C:\logs";
    logging.FlushInterval = TimeSpan.FromSeconds(2);
});

LoggingFields

W3CLoggerOptions.LoggingFields isteğin belirli bölümlerini ile günlüğe verilen yanıtı ve bağlantıyla ilgili diğer bilgileri yapılandıran bir bit bayrağı numaralandırmasıdır. LoggingFields, UserName ve Cookie dışındaki tüm olası alanları içerecek şekilde varsayılan olarak ayarlanır. Kullanılabilir alanların bir tam listesi için, bkz. W3CLoggingFields.