W3CLogger v ASP.NET Core
Poznámka:
Toto není nejnovější verze tohoto článku. Aktuální verzi najdete v tomto článku ve verzi .NET 9.
Upozorňující
Tato verze ASP.NET Core se už nepodporuje. Další informace najdete v tématu .NET a .NET Core Zásady podpory. Aktuální verzi najdete ve verzi .NET 8 tohoto článku.
Důležité
Tyto informace se týkají předběžného vydání produktu, který může být podstatně změněn před komerčním vydáním. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Aktuální verzi najdete v tomto článku ve verzi .NET 9.
W3CLogger je middleware, který zapisuje soubory protokolů ve standardním formátu W3C. Protokoly obsahují informace o požadavcích HTTP a odpovědích HTTP. W3CLogger poskytuje protokoly pro:
- Informace o požadavku HTTP
- Obecné vlastnosti
- Hlavičky
- Informace o odpovědi HTTP
- Metadata o páru požadavku a odpovědi (datum/čas zahájení, potřebná doba)
W3CLogger je velmi účinný v několika scénářích, kdy provádí následující:
- Záznam informací o příchozích požadavcích a odpovědích
- Filtrování, které části požadavku a odpovědi se protokolují
- Filtrování záhlaví, která se mají protokolovat
W3CLogger může snížit výkon aplikace. Při výběru polí, která se mají protokolovat, zvažte dopad na výkon. Čím víc vlastností budete protokolovat, tím víc se sníží výkon. Otestujte dopad na výkon vybraných vlastností protokolování.
Upozorňující
W3CLogger může potenciálně protokolovat identifikovatelné osobní údaje (PII). Vezměte riziko do úvahy a vyhněte se protokolování citlivých informací. Ve výchozím nastavení se pole, která by mohla obsahovat identifikovatelné osobní údaje, neprotokolují.
Povolení W3CLoggeru
Povolte W3CLogger pomocí UseW3CLogging, což přidá middleware W3CLogger:
var app = builder.Build();
app.UseW3CLogging();
app.UseRouting();
W3CLogger ve výchozím nastavení protokoluje běžné vlastnosti, jako je cesta, stavový kód, datum, čas a protokol. Všechny informace o jednom páru požadavku a odpovědi se zapíšou na stejný řádek.
#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 -
Možnosti W3CLoggeru
Chcete-li nakonfigurovat middleware W3CLogger, zavolejte AddW3CLogging v souboru 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 je výčet bitových příznaků, který konfiguruje konkrétní protokolované části požadavku a odpovědi a další informace o připojení. Ve výchozím nastavení LoggingFields
zahrnuje všechna možná pole s výjimkou UserName
a Cookie
. Úplný seznam dostupných polí obsahuje W3CLoggingFields.
W3CLogger je middleware, který zapisuje soubory protokolů ve standardním formátu W3C. Protokoly obsahují informace o požadavcích HTTP a odpovědích HTTP. W3CLogger poskytuje protokoly pro:
- Informace o požadavku HTTP
- Obecné vlastnosti
- Hlavičky
- Informace o odpovědi HTTP
- Metadata o páru požadavku a odpovědi (datum/čas zahájení, potřebná doba)
W3CLogger je velmi účinný v několika scénářích, kdy provádí následující:
- Záznam informací o příchozích požadavcích a odpovědích
- Filtrování, které části požadavku a odpovědi se protokolují
- Filtrování záhlaví, která se mají protokolovat
W3CLogger může snížit výkon aplikace. Při výběru polí, která se mají protokolovat, zvažte dopad na výkon. Čím víc vlastností budete protokolovat, tím víc se sníží výkon. Otestujte dopad na výkon vybraných vlastností protokolování.
Upozorňující
W3CLogger může potenciálně protokolovat identifikovatelné osobní údaje (PII). Vezměte riziko do úvahy a vyhněte se protokolování citlivých informací. Ve výchozím nastavení se pole, která by mohla obsahovat identifikovatelné osobní údaje, neprotokolují.
Povolení W3CLoggeru
Povolte W3CLogger pomocí UseW3CLogging, což přidá middleware W3CLogger:
var app = builder.Build();
app.UseW3CLogging();
app.UseRouting();
W3CLogger ve výchozím nastavení protokoluje běžné vlastnosti, jako je cesta, stavový kód, datum, čas a protokol. Všechny informace o jednom páru požadavku a odpovědi se zapíšou na stejný řádek.
#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 -
Možnosti W3CLoggeru
Chcete-li nakonfigurovat middleware W3CLogger, zavolejte AddW3CLogging v souboru 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 je výčet bitových příznaků, který konfiguruje konkrétní protokolované části požadavku a odpovědi a další informace o připojení. Ve výchozím nastavení LoggingFields
zahrnuje všechna možná pole s výjimkou UserName
a Cookie
. Úplný seznam dostupných polí obsahuje W3CLoggingFields.