Delen via


W3CLogger in ASP.NET Core

Note

Dit is niet de nieuwste versie van dit artikel. Zie de .NET 10-versie van dit artikel voor de huidige release.

Warning

Deze versie van ASP.NET Core wordt niet meer ondersteund. Zie het .NET- en .NET Core-ondersteuningsbeleid voor meer informatie. Zie de .NET 9-versie van dit artikel voor de huidige release.

W3CLogger is een middleware die logboekbestanden schrijft in de W3C-standaardindeling. De logboeken bevatten informatie over HTTP-aanvragen en HTTP-antwoorden. W3CLogger biedt logboeken van:

  • HTTP-aanvraaggegevens
  • Gemeenschappelijke eigenschappen
  • Headers
  • HTTP-antwoordinformatie
  • Metagegevens over het aanvraag-/antwoordpaar (datum/tijd gestart, tijd die nodig is)

W3CLogger is in verschillende scenario's waardevol voor:

  • Noteer informatie over binnenkomende aanvragen en antwoorden.
  • Filter welke onderdelen van de aanvraag en het antwoord worden geregistreerd.
  • Filter de headers die moeten worden gelogd.

W3CLogger kan de prestaties van een app verminderen. Houd rekening met de gevolgen voor de prestaties bij het selecteren van velden die moeten worden vastgelegd. De prestatievermindering neemt toe naarmate u meer eigenschappen opneemt. Test de invloed van de geselecteerde logeigenschappen op de prestaties.

Warning

W3CLogger kan mogelijk persoonsgegevens registreren. Houd rekening met het risico en vermijd gevoelige informatie in logboekregistratie. Standaard worden velden die PII kunnen bevatten, niet vastgelegd.

W3CLogger inschakelen

Schakel W3CLogger in met UseW3CLogging, waarmee de W3CLogger-middleware wordt toegevoegd:

var app = builder.Build();

app.UseW3CLogging();

app.UseRouting();

Standaard registreert W3CLogger algemene eigenschappen, zoals pad, statuscode, datum, tijd en protocol. Alle informatie over één aanvraag/antwoordpaar wordt naar dezelfde regel geschreven.

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

Als u de W3CLogger-middleware wilt configureren, roept u AddW3CLogging in Program.cs aan.

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 is een bitvlag-enumeratie die specificeert welke onderdelen van de aanvraag en respons gelogd worden, evenals andere informatie over de verbinding. LoggingFields staat standaard in om alle mogelijke velden op te nemen, behalve UserName en Cookie. Zie voor een volledige lijst met beschikbare velden W3CLoggingFields.

W3CLogger is een middleware die logboekbestanden schrijft in de W3C-standaardindeling. De logboeken bevatten informatie over HTTP-aanvragen en HTTP-antwoorden. W3CLogger biedt logboeken van:

  • HTTP-aanvraaggegevens
  • Gemeenschappelijke eigenschappen
  • Headers
  • HTTP-antwoordinformatie
  • Metagegevens over het aanvraag-/antwoordpaar (datum/tijd gestart, tijd die nodig is)

W3CLogger is in verschillende scenario's waardevol voor:

  • Noteer informatie over binnenkomende aanvragen en antwoorden.
  • Filter welke onderdelen van de aanvraag en het antwoord worden geregistreerd.
  • Filter de headers die moeten worden gelogd.

W3CLogger kan de prestaties van een app verminderen. Houd rekening met de gevolgen voor de prestaties bij het selecteren van velden die moeten worden vastgelegd. De prestatievermindering neemt toe naarmate u meer eigenschappen opneemt. Test de invloed van de geselecteerde logeigenschappen op de prestaties.

Warning

W3CLogger kan mogelijk persoonsgegevens registreren. Houd rekening met het risico en vermijd gevoelige informatie in logboekregistratie. Standaard worden velden die PII kunnen bevatten, niet vastgelegd.

W3CLogger inschakelen

Schakel W3CLogger in met UseW3CLogging, waarmee de W3CLogger-middleware wordt toegevoegd:

var app = builder.Build();

app.UseW3CLogging();

app.UseRouting();

Standaard registreert W3CLogger algemene eigenschappen, zoals pad, statuscode, datum, tijd en protocol. Alle informatie over één aanvraag/antwoordpaar wordt naar dezelfde regel geschreven.

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

Als u de W3CLogger-middleware wilt configureren, roept u AddW3CLogging in Program.cs aan.

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 is een bitvlag-enumeratie die specificeert welke onderdelen van de aanvraag en respons gelogd worden, evenals andere informatie over de verbinding. LoggingFields staat standaard in om alle mogelijke velden op te nemen, behalve UserName en Cookie. Zie voor een volledige lijst met beschikbare velden W3CLoggingFields.