W3CLogger в ASP.NET Core
Примечание.
Это не последняя версия этой статьи. В текущем выпуске см . версию .NET 8 этой статьи.
Предупреждение
Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в статье о политике поддержки .NET и .NET Core. В текущем выпуске см . версию .NET 8 этой статьи.
Внимание
Эта информация относится к предварительному выпуску продукта, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
В текущем выпуске см . версию .NET 8 этой статьи.
W3CLogger — это ПО промежуточного слоя, записывающее файлы журналов в стандартном формате W3C. Журналы содержат сведения об HTTP-запросах и HTTP-ответах. W3CLogger предоставляет журналы для следующего:
- HTTP-запросы;
- Общие свойства
- Заголовки
- HTTP-ответы.
- Метаданные о паре "запрос-ответ" (дата и время запуска, затраченное время)
W3CLogger можно использовать в нескольких сценариях для следующего:
- запись сведений о входящих запросах и ответах;
- фильтрация регистрируемых частей запросов и ответов;
- фильтрация регистрируемых заголовков.
W3CLogger может снижать производительность приложения. Учитывайте влияние на производительность при выборе полей для записи в журнал —чем больше свойств для записи, тем ниже производительность. Проверьте влияние выбранных свойств ведения журнала на производительность.
Предупреждение
В ходе работы W3CLogger могут записываться личные сведения. Примите во внимание возможные риски и не записывайте конфиденциальную информацию. По умолчанию поля, которые могут содержать личные сведения, не регистрируются.
Включение W3CLogger
Включите W3CLogger с помощью UseW3CLogging, который добавляет ПО промежуточного слоя W3CLogger:
var app = builder.Build();
app.UseW3CLogging();
app.UseRouting();
По умолчанию W3CLogger регистрирует общие свойства, такие как путь, код состояния, дата, время и протокол. Все сведения об одной паре "запрос-ответ" записываются в одну и ту же строку.
#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
Чтобы настроить ПО промежуточного слоя W3CLogger, вызовите AddW3CLogging в 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 — это перечисление битовых флагов, которое настраивает определенные части запроса и ответа для регистрации, а также другие сведения о подключении. LoggingFields
по умолчанию включает все возможные поля, кроме UserName
и Cookie
. Полный список доступных полей см. здесь: W3CLoggingFields.
W3CLogger — это ПО промежуточного слоя, записывающее файлы журналов в стандартном формате W3C. Журналы содержат сведения об HTTP-запросах и HTTP-ответах. W3CLogger предоставляет журналы для следующего:
- HTTP-запросы;
- Общие свойства
- Заголовки
- HTTP-ответы.
- Метаданные о паре "запрос-ответ" (дата и время запуска, затраченное время)
W3CLogger можно использовать в нескольких сценариях для следующего:
- запись сведений о входящих запросах и ответах;
- фильтрация регистрируемых частей запросов и ответов;
- фильтрация регистрируемых заголовков.
W3CLogger может снижать производительность приложения. Учитывайте влияние на производительность при выборе полей для записи в журнал —чем больше свойств для записи, тем ниже производительность. Проверьте влияние выбранных свойств ведения журнала на производительность.
Предупреждение
В ходе работы W3CLogger могут записываться личные сведения. Примите во внимание возможные риски и не записывайте конфиденциальную информацию. По умолчанию поля, которые могут содержать личные сведения, не регистрируются.
Включение W3CLogger
Включите W3CLogger с помощью UseW3CLogging, который добавляет ПО промежуточного слоя W3CLogger:
var app = builder.Build();
app.UseW3CLogging();
app.UseRouting();
По умолчанию W3CLogger регистрирует общие свойства, такие как путь, код состояния, дата, время и протокол. Все сведения об одной паре "запрос-ответ" записываются в одну и ту же строку.
#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
Чтобы настроить ПО промежуточного слоя W3CLogger, вызовите AddW3CLogging в 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 — это перечисление битовых флагов, которое настраивает определенные части запроса и ответа для регистрации, а также другие сведения о подключении. LoggingFields
по умолчанию включает все возможные поля, кроме UserName
и Cookie
. Полный список доступных полей см. здесь: W3CLoggingFields.
ASP.NET Core