Delen via


W3CLogger in ASP.NET Core

Note

Dit is niet de nieuwste versie van dit artikel. Zie de .NET 9-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.

Important

Deze informatie heeft betrekking op een pre-releaseproduct dat aanzienlijk kan worden gewijzigd voordat het commercieel wordt uitgebracht. Microsoft geeft geen garanties, uitdrukkelijk of impliciet, met betrekking tot de informatie die hier wordt verstrekt.

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
  • Common properties
  • 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 welke headers moeten worden vastgelegd.

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.

Enable W3CLogger

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 options

Als u de W3CLogger-middleware wilt configureren, roept u AddW3CLogging het volgende aan 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

W3CLoggerOptions.LoggingFields is een bitvlag-inventarisatie waarmee specifieke onderdelen van de aanvraag en reactie op logboeken en andere informatie over de verbinding worden geconfigureerd. LoggingFields standaard alle mogelijke velden, 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
  • Common properties
  • 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 welke headers moeten worden vastgelegd.

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.

Enable W3CLogger

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 options

Als u de W3CLogger-middleware wilt configureren, roept u AddW3CLogging het volgende aan 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

W3CLoggerOptions.LoggingFields is een bitvlag-inventarisatie waarmee specifieke onderdelen van de aanvraag en reactie op logboeken en andere informatie over de verbinding worden geconfigureerd. LoggingFields standaard alle mogelijke velden, behalve UserName en Cookie. Zie voor een volledige lijst met beschikbare velden W3CLoggingFields.