ASP.NET Core의 W3CLogger
참고 항목
이 문서의 최신 버전은 아닙니다. 현재 릴리스는 이 문서의 .NET 8 버전을 참조 하세요.
Important
이 정보는 상업적으로 출시되기 전에 실질적으로 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적, 또는 묵시적인 보증을 하지 않습니다.
현재 릴리스는 이 문서의 .NET 8 버전을 참조 하세요.
W3CLogger는 W3C 표준 형식으로 로그 파일을 기록하는 미들웨어입니다. 로그에는 HTTP 요청 및 HTTP 응답에 대한 정보가 포함됩니다. W3CLogger는 다음의 로그를 제공합니다.
- HTTP 요청 정보
- 일반 속성
- 헤더
- HTTP 응답 정보
- 요청/응답 쌍에 대한 메타데이터(시작된 날짜/시간, 소요 시간)
W3CLogger가 유용한 몇 가지 시나리오는 다음과 같습니다.
- 들어오는 요청 및 응답에 대한 정보를 기록합니다.
- 요청 및 응답의 어느 부분이 로그되는지 필터링합니다.
- 로그할 헤더를 필터링합니다.
W3CLogger는 앱의 성능을 저하시킬 수 있습니다. 로그할 필드를 선택할 때 성능 영향을 고려합니다. 더 많은 속성을 로그하면 성능이 더 저하됩니다. 선택한 로깅 속성이 성능에 미치는 영향을 테스트하세요.
Warning
W3CLogger는 PII(개인 식별 정보)를 로그할 가능성이 있습니다. 위험성을 고려해 중요한 정보를 로그하지 않도록 하세요. 기본적으로 PII를 포함할 수 있는 필드는 로그되지 않습니다.
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 미들웨어를 구성하려면 Program.cs
에서 AddW3CLogging을 호출합니다.
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는 앱의 성능을 저하시킬 수 있습니다. 로그할 필드를 선택할 때 성능 영향을 고려합니다. 더 많은 속성을 로그하면 성능이 더 저하됩니다. 선택한 로깅 속성이 성능에 미치는 영향을 테스트하세요.
Warning
W3CLogger는 PII(개인 식별 정보)를 로그할 가능성이 있습니다. 위험성을 고려해 중요한 정보를 로그하지 않도록 하세요. 기본적으로 PII를 포함할 수 있는 필드는 로그되지 않습니다.
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 미들웨어를 구성하려면 Program.cs
에서 AddW3CLogging을 호출합니다.
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