전역 적으로 오류를 기록하는 새로운 방법을 사용하고 싶습니다. 나는 ExceptionLogger
을 상속받은 클래스를 작성했으며 Log()
메소드를 재정의했다. 그런 다음 대체품으로 등록했습니다.ExceptionLogger에서 작업 매개 변수 참조
public class TraceExceptionLogger : ExceptionLogger
{
public async override void Log(ExceptionLoggerContext context)
{
// This is always empty string
var content = await context.Request.Content.ReadAsStringAsync();
// This is almost always null
var actionContext = context.ExceptionContext.ActionContext;
}
}
나는 액션 매개 변수를 제외하고 내가 필요한 거의 모든 것을 얻을 수있는 ExceptionLoggerContext
개체의 속성을 통해 발굴 할 수 있습니다. 실제로 ActionContext
속성이 있지만 null 만 보았고 this wiki page은 ActionContext
과 ControllerContext
이 거의 항상 null이라는 것을 나타냅니다.
또한 스트림이 내 기록기에 도착하기 전에 이미 스트림이 읽혀 있기 때문에 콘텐츠 스트림을 가져올 수 없습니다. 따라서 요청 된 내용에서 게시 된 json을 가져올 방법이 없습니다.
게시 된 데이터를 HttpContext.Current
또는 다른 방법으로 가져 오는 방법이 있습니까?
나중에 참조 할 수 있도록 조치 매개 변수입니다! 나는 곧 죽을려고했다. 요청 내용을 로깅 할 수없는 초조함이었습니다. –
@StefanVasiljevic 나는 그것이 도움이되고 당신의 목숨을 구했다고 기쁘다. 내 코드가 그 일을 처음으로 한 것 같아. 하하. 건배! – jlafay
@jlafay .. 그리고 그것은 마지막이 아닐 것입니다! 2017 년 11 월, 아직도 생명을 구하고 있습니다! – CloudyOne