W3CLogger in ASP.NET Core
Hinweis
Dies ist nicht die neueste Version dieses Artikels. Informationen zum aktuellen Release finden Sie in der .NET 8-Version dieses Artikels.
Warnung
Diese Version von ASP.NET Core wird nicht mehr unterstützt. Weitere Informationen finden Sie in der Supportrichtlinie für .NET und .NET Core. Informationen zum aktuellen Release finden Sie in der .NET 8-Version dieses Artikels.
Wichtig
Diese Informationen beziehen sich auf ein Vorabversionsprodukt, das vor der kommerziellen Freigabe möglicherweise noch wesentlichen Änderungen unterliegt. Microsoft gibt keine Garantie, weder ausdrücklich noch impliziert, hinsichtlich der hier bereitgestellten Informationen.
Informationen zum aktuellen Release finden Sie in der .NET 8-Version dieses Artikels.
W3CLogger ist eine Middleware, die Protokolldateien im W3C-Standardformat schreibt. Die Protokolle enthalten Informationen zu HTTP-Anforderungen und HTTP-Antworten. W3CLogger stellt Protokolle hiervon bereit:
- HTTP-Anforderungsinformationen
- Allgemeine Eigenschaften
- Kopfzeilen
- HTTP-Antwortinformationen
- Metadaten zum Anforderungs-/Antwortpaar (Startdatum/-uhrzeit, Dauer)
W3CLogger ist in verschiedenen Szenarien nützlich, wie etwa:
- Aufzeichnen von Informationen zu eingehenden Anforderungen und Antworten.
- Filtern, welche Teile der Anforderung und Antwort protokolliert werden.
- Filtern, welche Header protokolliert werden sollen.
W3CLogger kann die Leistung einer App beeinträchtigen. Berücksichtigen Sie die Auswirkungen auf die Leistung, wenn Sie die zu protokollierenden Felder auswählen. Die Leistung wird umso stärker beeinträchtigt, je mehr Eigenschaften Sie protokollieren. Testen Sie die Auswirkungen der ausgewählten Protokollierungseigenschaften auf die Leistung.
Warnung
W3CLogger kann potenziell personenbezogene Informationen (Personally Identifiable Information, PII) protokollieren. Berücksichtigen Sie das Risiko, und vermeiden Sie die Protokollierung vertraulicher Informationen. Standardmäßig werden Felder mit personenbezogenen Informationen nicht protokolliert werden.
Aktivieren von W3CLogger
Aktivieren Sie W3CLogger mit UseW3CLogging, wodurch die Middleware W3CLogger hinzugefügt wird:
var app = builder.Build();
app.UseW3CLogging();
app.UseRouting();
Standardmäßig protokolliert W3CLogger allgemeine Eigenschaften wie Pfad, Statuscode, Datum, Uhrzeit und Protokoll. Alle Informationen zu einem einzelnen Anforderungs-/Antwortpaar werden in die gleiche Zeile geschrieben.
#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-Optionen
Zum Konfigurieren der W3CLogger-Middleware rufen Sie AddW3CLogging in Program.cs
auf:
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 ist eine Bitflagenumeration, die bestimmte Teile der Anforderung und Antwort für die Protokollierung sowie andere Informationen zur Verbindung konfiguriert. LoggingFields
schließt standardmäßig alle möglichen Felder außer UserName
und Cookie
ein. Eine vollständige Liste der verfügbaren Felder finden Sie unter W3CLoggingFields.
W3CLogger ist eine Middleware, die Protokolldateien im W3C-Standardformat schreibt. Die Protokolle enthalten Informationen zu HTTP-Anforderungen und HTTP-Antworten. W3CLogger stellt Protokolle hiervon bereit:
- HTTP-Anforderungsinformationen
- Allgemeine Eigenschaften
- Kopfzeilen
- HTTP-Antwortinformationen
- Metadaten zum Anforderungs-/Antwortpaar (Startdatum/-uhrzeit, Dauer)
W3CLogger ist in verschiedenen Szenarien nützlich, wie etwa:
- Aufzeichnen von Informationen zu eingehenden Anforderungen und Antworten.
- Filtern, welche Teile der Anforderung und Antwort protokolliert werden.
- Filtern, welche Header protokolliert werden sollen.
W3CLogger kann die Leistung einer App beeinträchtigen. Berücksichtigen Sie die Auswirkungen auf die Leistung, wenn Sie die zu protokollierenden Felder auswählen. Die Leistung wird umso stärker beeinträchtigt, je mehr Eigenschaften Sie protokollieren. Testen Sie die Auswirkungen der ausgewählten Protokollierungseigenschaften auf die Leistung.
Warnung
W3CLogger kann potenziell personenbezogene Informationen (Personally Identifiable Information, PII) protokollieren. Berücksichtigen Sie das Risiko, und vermeiden Sie die Protokollierung vertraulicher Informationen. Standardmäßig werden Felder mit personenbezogenen Informationen nicht protokolliert werden.
Aktivieren von W3CLogger
Aktivieren Sie W3CLogger mit UseW3CLogging, wodurch die Middleware W3CLogger hinzugefügt wird:
var app = builder.Build();
app.UseW3CLogging();
app.UseRouting();
Standardmäßig protokolliert W3CLogger allgemeine Eigenschaften wie Pfad, Statuscode, Datum, Uhrzeit und Protokoll. Alle Informationen zu einem einzelnen Anforderungs-/Antwortpaar werden in die gleiche Zeile geschrieben.
#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-Optionen
Zum Konfigurieren der W3CLogger-Middleware rufen Sie AddW3CLogging in Program.cs
auf:
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 ist eine Bitflagenumeration, die bestimmte Teile der Anforderung und Antwort für die Protokollierung sowie andere Informationen zur Verbindung konfiguriert. LoggingFields
schließt standardmäßig alle möglichen Felder außer UserName
und Cookie
ein. Eine vollständige Liste der verfügbaren Felder finden Sie unter W3CLoggingFields.
ASP.NET Core