2012-06-21 7 views
5

ASP.NET MVC 4 Web API에서 로깅/추적을 사용하는 기능을 찾고 있습니다. WCF에서는 로깅 및 WCF 쓰기를 활성화 할 수 있습니다. 그런 다음 덤프를 열고 오류를 검색 할 수 있습니다.ASP.NET MVC 4 웹 API : 진단 기능

내 웹 API를 추적하고 싶지 않지만 프레임 워크가 로그하고 있습니다. 메시지 처리기로 웹 API를 추적/로그하는 경우 구현 전에 오류가 발생하는 경우 정보가 표시되지 않습니다.

답변

4

두 가지를 권하고 싶습니다.

1) 예외가 발생하는 경우 자세한 내용을 보려면 오류 정책을 always로 설정하십시오. 이렇게하면 코드에서보다 자세한 예외 메시지가 반환됩니다.

GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always; 

나는 이것이 RC에서만 작동한다고 생각한다.

2) 그런 다음 추가 요청/응답 정보에 사용할 수있는 메시지 처리기를 연결하는 것이 좋습니다. 메시지 핸들러는 새 요청이 들어오고 최종 응답이 반환되기 바로 전에 실행됩니다. 이 온라인 예제는 수없이 많습니다. 당신은 example

3)가 다른 서버 이벤트를 모니터링 할 경우로에서 좀 걸릴 수 있습니다 GitHub repo을의에 WebAPIContrib 하나를 가지고, 당신은 당신이 ASP에서 호스팅하고있는 한, asp.net health monitoring 사용을 고려할 수 있습니다. 물론 그물. 다양한 감사를 수행하고 서버 오류를 모니터 할 수 있습니다. 당신이 (System.Diagnostics.Trace를 호출하는 것처럼 간단 할 수있다)을 ITraceWriter 구현을 제공하는 경우

+0

안녕, 나는 그들이이 경우 작동하지 않기 때문에 메시지 처리기를 사용하지 않습니다. 프레임 워크가하는 일의 로그가 필요합니다. 예를 들어 서버 시작 중에 오류가 발생하면 메시지 핸들러는 호출되지 않습니다. – user437899

+0

서버 오류는 웹 API와 관련이 없습니다. 건강 모니터링을 보셨습니까? 내 대답에 대한 링크가있는 부분을 추가 할 수 있습니다 – cecilphillip

+4

프로덕션 환경에서 ** IncludeErrorDetailPolicy.Always **를 절대 사용하지 않아야합니다 ** 이것은 정보 Diclosure 취약점입니다 : 예외는 시스템 해킹 방법을 찾는 데 사용할 수있는 세부 정보를 포함합니다 (https://www.owasp.org/index.php/Information_Leak_(information_disclosure)를 참조하십시오. – Isantipov