어떻게 asp.net core 에 미들웨어 기록 인터페이스 시간 을 씁 니까?
인 터 페 이 스 를 쓰 는 사람 은 다른 사람 이 인터페이스 가 비교적 느 리 고 얼마나 느 린 지,한 인터페이스 서버 가 처리 하 는 데 얼마나 걸 렸 는 지,만약 에 구체 적 인 숫자 가 있어 서 모든 인터페이스 가 얼마나 걸 렸 는 지 기록 할 수 있다 면 다른 사람 이 인터페이스 가 느 릴 때 인터페이스 소모 시간 통 계 를 보고 몇 밀리초 만 에 처리 하면 이 솥 에 대해 나 는 외우 지 않 을 것 이다.
중간 부품 실현
asp.net core 의 실행 은 하나의 또 하나의 미들웨어 로 이 루어 집 니 다.따라서 우 리 는 자신의 미들웨어 만 정의 하고 요청 이 시작 되 기 전의 시간 과 처리 가 끝 난 후의 시간 을 기록 해 야 합 니 다.이 미들웨어 는 요청 한 시간 을 로그 에 출력 할 수 있 습 니 다.응답 헤드 나 다른 곳 으로 출력 해 야 합 니 다.
public static class PerformanceLogExtension
{
public static IApplicationBuilder UsePerformanceLog(this IApplicationBuilder applicationBuilder)
{
applicationBuilder.Use(async (context, next) =>
{
var profiler = new StopwatchProfiler();
profiler.Start();
await next();
profiler.Stop();
var logger = context.RequestServices.GetService<ILoggerFactory>()
.CreateLogger("PerformanceLog");
logger.LogInformation("TraceId:{TraceId}, RequestMethod:{RequestMethod}, RequestPath:{RequestPath}, ElapsedMilliseconds:{ElapsedMilliseconds}, Response StatusCode: {StatusCode}",
context.TraceIdentifier, context.Request.Method, context.Request.Path, profiler.ElapsedMilliseconds, context.Response.StatusCode);
});
return applicationBuilder;
}
}
미들웨어 설정Startup 에 요청 처리 파 이 프 를 설정 합 니 다.예제 설정 은 다음 과 같 습 니 다.
app.UsePerformanceLog();
app.UseAuthentication();
app.UseMvc(routes =>
{
// ...
});
// ...
예시로그 에서 Logger 이름 인"PerformanceLog"로 로 그 를 검색 합 니 다.로그 에 있 는 ElapsedMilliseconds 는 인터페이스 에 대응 하 는 시간 이 걸 리 거나 ElapsedMilliseconds 범위 에 따라 검색 할 수 있 습 니 다.예 를 들 어 1s 이상 걸 리 는 로 그 를 선택 하 는 것 입 니 다.
Memo
이 중간 부품 은 비교적 간단 하지만,단지 처리 사고방식 일 뿐이다.
대형 애플 리 케 이 션 은 비교적 전문 적 인 APM 도 구 를 사용 할 수 있 습 니 다.최근 에 인기 가 많은Skywalking프로젝트 는.NET Core 를 지원 합 니 다.상세 한 정 보 는 참고 하 세 요https://github.com/SkyAPM/SkyAPM-dotnet
Reference
https://github.com/WeihanLi/ActivityReservation
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
작업 중 문제 해결 - (win 2003 asp. net) Session 과 페이지 전송 방법 으로 해결 방안 을 정상적으로 사용 할 수 없습니다.또한 F 는 처음에 우리 의 BP & IT 프로젝트 팀 이 Forms 폼 검증 을 사용 했다 고 판단 할 수 있 습 니 다. 페이지 를 뛰 어 넘 는 것 은http://hr.bingjun.cc/MyTask/MyTas...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.