Partage via


W3CLogger dans ASP.NET Core

Remarque

Ceci n’est pas la dernière version de cet article. Pour la version actuelle, consultez la version .NET 8 de cet article.

Avertissement

Cette version d’ASP.NET Core n’est plus prise en charge. Pour plus d’informations, consultez la Stratégie de prise en charge de .NET et .NET Core. Pour la version actuelle, consultez la version .NET 8 de cet article.

Important

Ces informations portent sur la préversion du produit, qui est susceptible d’être en grande partie modifié avant sa commercialisation. Microsoft n’offre aucune garantie, expresse ou implicite, concernant les informations fournies ici.

Pour la version actuelle, consultez la version .NET 8 de cet article.

W3CLogger est un middleware (intergiciel) qui écrit des fichiers journaux au format normalisé du W3C. Les journaux contiennent des informations sur les requêtes HTTP et les réponses HTTP. W3CLogger fournit des journaux relatifs aux éléments suivants :

  • Informations sur les requêtes HTTP
  • Propriétés communes
  • En-têtes
  • Informations de réponse HTTP
  • Métadonnées relatives à la paire requête/réponse (date/heure de début, temps nécessaire)

W3CLogger est utile dans plusieurs scénarios pour :

  • Enregistrer des informations sur les requêtes entrantes et les réponses.
  • Filtrer les parties des requêtes et des réponses à journaliser.
  • Filtrer les en-têtes à journaliser.

W3CLogger peut réduire les performances d’une application. Tenez compte de l’impact sur les performances au moment de la sélection des champs à journaliser. La réduction des performances augmente à mesure que vous journalisez davantage de propriétés. Testez l’impact des propriétés de journalisation sélectionnées sur les performances.

Avertissement

W3CLogger peut éventuellement journaliser des informations d’identification personnelle (PII). Tenez compte des risques, et évitez de journaliser des informations sensibles. Par défaut, les champs qui peuvent contenir des informations d’identification personnelle ne sont pas journalisés.

Activer W3CLogger

Activez W3CLogger avec UseW3CLogging, qui ajoute le middleware W3CLogger :

var app = builder.Build();

app.UseW3CLogging();

app.UseRouting();

Par défaut, W3CLogger journalise les propriétés courantes telles que le chemin, le code d’état, la date, l’heure et le protocole. Toutes les informations relatives à une seule paire requête/réponse sont écrites sur la même ligne.

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

Options de W3CLogger

Pour configurer le middleware W3CLogger, appelez AddW3CLogging dans 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 est une énumération d’indicateurs de bit qui configure des parties spécifiques de la requête et de la réponse à journaliser ainsi que d’autres informations relatives à la connexion. Par défaut, LoggingFields inclut tous les champs possibles à l’exception de UserName et Cookie. Pour obtenir la liste complète des champs disponibles, consultez W3CLoggingFields.

W3CLogger est un middleware (intergiciel) qui écrit des fichiers journaux au format normalisé du W3C. Les journaux contiennent des informations sur les requêtes HTTP et les réponses HTTP. W3CLogger fournit des journaux relatifs aux éléments suivants :

  • Informations sur les requêtes HTTP
  • Propriétés communes
  • En-têtes
  • Informations de réponse HTTP
  • Métadonnées relatives à la paire requête/réponse (date/heure de début, temps nécessaire)

W3CLogger est utile dans plusieurs scénarios pour :

  • Enregistrer des informations sur les requêtes entrantes et les réponses.
  • Filtrer les parties des requêtes et des réponses à journaliser.
  • Filtrer les en-têtes à journaliser.

W3CLogger peut réduire les performances d’une application. Tenez compte de l’impact sur les performances au moment de la sélection des champs à journaliser. La réduction des performances augmente à mesure que vous journalisez davantage de propriétés. Testez l’impact des propriétés de journalisation sélectionnées sur les performances.

Avertissement

W3CLogger peut éventuellement journaliser des informations d’identification personnelle (PII). Tenez compte des risques, et évitez de journaliser des informations sensibles. Par défaut, les champs qui peuvent contenir des informations d’identification personnelle ne sont pas journalisés.

Activer W3CLogger

Activez W3CLogger avec UseW3CLogging, qui ajoute le middleware W3CLogger :

var app = builder.Build();

app.UseW3CLogging();

app.UseRouting();

Par défaut, W3CLogger journalise les propriétés courantes telles que le chemin, le code d’état, la date, l’heure et le protocole. Toutes les informations relatives à une seule paire requête/réponse sont écrites sur la même ligne.

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

Options de W3CLogger

Pour configurer le middleware W3CLogger, appelez AddW3CLogging dans 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 est une énumération d’indicateurs de bit qui configure des parties spécifiques de la requête et de la réponse à journaliser ainsi que d’autres informations relatives à la connexion. Par défaut, LoggingFields inclut tous les champs possibles à l’exception de UserName et Cookie. Pour obtenir la liste complète des champs disponibles, consultez W3CLoggingFields.