Usługa W3CLogger na platformie ASP.NET Core

W3CLogger to oprogramowanie pośredniczące, które zapisuje pliki dziennika w standardowym formacie W3C. Dzienniki zawierają informacje o żądaniach HTTP i odpowiedziach HTTP. Usługa W3CLogger udostępnia dzienniki zawierające:

  • Informacje o żądaniach HTTP
  • Wspólne właściwości
  • Nagłówki
  • Informacje o odpowiedziach HTTP
  • Metadane dotyczące pary żądanie/odpowiedź (data/godzina rozpoczęcia, czas trwania)

Usługa W3CLogger przydaje się w kilku scenariuszach i umożliwia:

  • Rejestrowanie informacji o przychodzących żądaniach i odpowiedziach.
  • Filtrowanie części żądania i odpowiedzi, które są rejestrowane.
  • Filtrowanie nagłówków, które należy zarejestrować.

Usługa W3CLogger może obniżyć wydajność aplikacji. Rozważ wpływ na wydajność podczas wybierania pól do rejestrowania — obniżenie wydajności pogłębi się w miarę rejestrowania większej liczby właściwości. Przetestuj wpływ na wydajność wybranych właściwości rejestrowania.

Ostrzeżenie

Usługa W3CLogger może potencjalnie rejestrować dane osobowe. Weź to ryzyko pod uwagę i unikaj rejestrowania poufnych informacji. Pola, które mogą zawierać dane osobowe, nie są domyślnie rejestrowane.

Włączanie usługi W3CLogger

Włącz usługę W3CLogger za pomocą metody UseW3CLogging, która dodaje oprogramowanie pośredniczące W3CLogger:

var app = builder.Build();

app.UseW3CLogging();

app.UseRouting();

Domyślnie usługa W3CLogger rejestruje typowe właściwości, takie jak ścieżka, kod stanu, data, godzina i protokół. Wszystkie informacje dotyczące pojedynczej pary żądanie/odpowiedź są zapisywane w tym samym wierszu.

#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 -

Opcje usługi W3CLogger

Aby skonfigurować oprogramowanie pośredniczące W3CLogger, wywołaj metodę AddW3CLogging w pliku Program.cs:

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

Właściwość W3CLoggerOptions.LoggingFields to bitowe wyliczenie flag, które konfiguruje konkretne części żądania i odpowiedzi do rejestrowania, a także inne informacje o połączeniu. Element LoggingFields domyślne obejmuje wszystkie możliwe pola za wyjątkiem UserName i Cookie. Aby uzyskać pełną listę dostępnych pól, zobacz W3CLoggingFields.

W3CLogger to oprogramowanie pośredniczące, które zapisuje pliki dziennika w standardowym formacie W3C. Dzienniki zawierają informacje o żądaniach HTTP i odpowiedziach HTTP. Usługa W3CLogger udostępnia dzienniki zawierające:

  • Informacje o żądaniach HTTP
  • Wspólne właściwości
  • Nagłówki
  • Informacje o odpowiedziach HTTP
  • Metadane dotyczące pary żądanie/odpowiedź (data/godzina rozpoczęcia, czas trwania)

Usługa W3CLogger przydaje się w kilku scenariuszach i umożliwia:

  • Rejestrowanie informacji o przychodzących żądaniach i odpowiedziach.
  • Filtrowanie części żądania i odpowiedzi, które są rejestrowane.
  • Filtrowanie nagłówków, które należy zarejestrować.

Usługa W3CLogger może obniżyć wydajność aplikacji. Rozważ wpływ na wydajność podczas wybierania pól do rejestrowania — obniżenie wydajności pogłębi się w miarę rejestrowania większej liczby właściwości. Przetestuj wpływ na wydajność wybranych właściwości rejestrowania.

Ostrzeżenie

Usługa W3CLogger może potencjalnie rejestrować dane osobowe. Weź to ryzyko pod uwagę i unikaj rejestrowania poufnych informacji. Pola, które mogą zawierać dane osobowe, nie są domyślnie rejestrowane.

Włączanie usługi W3CLogger

Włącz usługę W3CLogger za pomocą metody UseW3CLogging, która dodaje oprogramowanie pośredniczące W3CLogger:

var app = builder.Build();

app.UseW3CLogging();

app.UseRouting();

Domyślnie usługa W3CLogger rejestruje typowe właściwości, takie jak ścieżka, kod stanu, data, godzina i protokół. Wszystkie informacje dotyczące pojedynczej pary żądanie/odpowiedź są zapisywane w tym samym wierszu.

#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 -

Opcje usługi W3CLogger

Aby skonfigurować oprogramowanie pośredniczące W3CLogger, wywołaj metodę AddW3CLogging w pliku Program.cs:

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

Właściwość W3CLoggerOptions.LoggingFields to bitowe wyliczenie flag, które konfiguruje konkretne części żądania i odpowiedzi do rejestrowania, a także inne informacje o połączeniu. Element LoggingFields domyślne obejmuje wszystkie możliwe pola za wyjątkiem UserName i Cookie. Aby uzyskać pełną listę dostępnych pól, zobacz W3CLoggingFields.