Megosztás a következőn keresztül:


W3CLogger az ASP.NET Core-ban

Note

Ez nem a cikk legújabb verziója. Az aktuális kiadásról a cikk .NET 10-es verziójában olvashat.

Warning

A ASP.NET Core ezen verziója már nem támogatott. További információt a .NET és a .NET Core támogatási szabályzatában talál. A jelen cikk .NET 9-es verzióját lásd az aktuális kiadásért .

A W3CLogger egy köztes szoftver, amely a naplófájlokat W3C standard formátumban írja. A naplók a HTTP-kérelmekről és a HTTP-válaszokról tartalmaznak információkat. A W3CLogger a következő naplókat tartalmazza:

  • HTTP-kérelem adatai
  • Általános tulajdonságok
  • Headers
  • HTTP-válasz információi
  • A kérés/válasz pár metaadatai (dátum/idő kezdete, eltelt idő)

A W3CLogger több forgatókönyvben is hasznos:

  • A bejövő kérésekkel és válaszokkal kapcsolatos információk rögzítése.
  • Szűrje a kérés és a válasz mely részeit naplózza.
  • Szűrje ki a naplózni kívánt fejléceket.

A W3CLogger csökkentheti az alkalmazások teljesítményét. Vegye figyelembe a naplózni kívánt mezők kijelölésekor a teljesítményre gyakorolt hatást – a teljesítménycsökkenés a további tulajdonságok naplózása során nőni fog. Tesztelje a kiválasztott naplózási tulajdonságok teljesítményre gyakorolt hatását.

Warning

A W3CLogger személyazonosításra alkalmas adatokat (PII) is naplózhat. Vegye figyelembe a kockázatot, és kerülje a bizalmas adatok naplózását. Alapértelmezés szerint a PII-t tartalmazó mezők nincsenek naplózva.

A W3CLogger engedélyezése

Engedélyezze a W3CLoggert a UseW3CLogging, amely hozzáadja a W3CLogger köztes szoftvert:

var app = builder.Build();

app.UseW3CLogging();

app.UseRouting();

Alapértelmezés szerint a W3CLogger naplózza az olyan gyakori tulajdonságokat, mint az elérési út, az állapotkód, a dátum, az idő és a protokoll. Az egyetlen kérelem-válasz párra vonatkozó összes információ ugyanarra a sorra van írva.

#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-beállítások

A W3CLogger köztes szoftver konfigurálásához hívja meg a AddW3CLogging a 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 egy bit zászló enumeráció, amely konfigurálja, hogy a kérés és a válasz mely részei, valamint a kapcsolatról szóló egyéb információk kerüljenek naplózásra. LoggingFields alapértelmezés szerint az összes lehetséges mezőt tartalmazza, kivéve UserName és Cookie. Az elérhető mezők teljes listáját lásd W3CLoggingFields: .

A W3CLogger egy köztes szoftver, amely a naplófájlokat W3C standard formátumban írja. A naplók a HTTP-kérelmekről és a HTTP-válaszokról tartalmaznak információkat. A W3CLogger a következő naplókat tartalmazza:

  • HTTP-kérelem adatai
  • Általános tulajdonságok
  • Headers
  • HTTP-válasz információi
  • A kérés/válasz pár metaadatai (dátum/idő kezdete, eltelt idő)

A W3CLogger több forgatókönyvben is hasznos:

  • A bejövő kérésekkel és válaszokkal kapcsolatos információk rögzítése.
  • Szűrje a kérés és a válasz mely részeit naplózza.
  • Szűrje ki a naplózni kívánt fejléceket.

A W3CLogger csökkentheti az alkalmazások teljesítményét. Vegye figyelembe a naplózni kívánt mezők kijelölésekor a teljesítményre gyakorolt hatást – a teljesítménycsökkenés a további tulajdonságok naplózása során nőni fog. Tesztelje a kiválasztott naplózási tulajdonságok teljesítményre gyakorolt hatását.

Warning

A W3CLogger személyazonosításra alkalmas adatokat (PII) is naplózhat. Vegye figyelembe a kockázatot, és kerülje a bizalmas adatok naplózását. Alapértelmezés szerint a PII-t tartalmazó mezők nincsenek naplózva.

A W3CLogger engedélyezése

Engedélyezze a W3CLoggert a UseW3CLogging, amely hozzáadja a W3CLogger köztes szoftvert:

var app = builder.Build();

app.UseW3CLogging();

app.UseRouting();

Alapértelmezés szerint a W3CLogger naplózza az olyan gyakori tulajdonságokat, mint az elérési út, az állapotkód, a dátum, az idő és a protokoll. Az egyetlen kérelem-válasz párra vonatkozó összes információ ugyanarra a sorra van írva.

#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-beállítások

A W3CLogger köztes szoftver konfigurálásához hívja meg a AddW3CLogging a 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 egy bit zászló enumeráció, amely konfigurálja, hogy a kérés és a válasz mely részei, valamint a kapcsolatról szóló egyéb információk kerüljenek naplózásra. LoggingFields alapértelmezés szerint az összes lehetséges mezőt tartalmazza, kivéve UserName és Cookie. Az elérhető mezők teljes listáját lásd W3CLoggingFields: .