mvc에서 추적을 사용하고 싶습니다. 특히 특정 조건이 충족되면 페이지에 추적을 표시하려고합니다.MVC 특정 요청에 대해서만 추적
단일 요청의 컨텍스트에서 요청할 경우 System.Diagnostics.Trace
쓰기를 표시 할 수 있습니까?
mvc에서 추적을 사용하고 싶습니다. 특히 특정 조건이 충족되면 페이지에 추적을 표시하려고합니다.MVC 특정 요청에 대해서만 추적
단일 요청의 컨텍스트에서 요청할 경우 System.Diagnostics.Trace
쓰기를 표시 할 수 있습니까?
불행히도 에는 요청별로 해결하려는 조건에 따라 추적을 설정/해제 할 수있는 방법이 없습니다. 그것은 전부 아니면 전혀없는 접근 방식입니다. 나는 말했다
매우는 MVC MiniProfiler합니다 ( Stack Exchange Data Explorer에 대중에게 특히, 스택 Exchange 사이트에 여기에 사용) 권장합니다.그리고 당신은 당 요청으로 프로파일을 설정할 수 있습니다 :
당신은 기본적으로 같은 페이지에 렌더링을 얻을
using StackExchange.Profiling;
...
protected void Application_BeginRequest()
{
if (Request.IsLocal)
{
MiniProfiler.Start();
}
}
구문은 약간 다릅니다 Trace
클래스를 사용하면 다음과 같이 using
문을 사용해야합니다.
using (profiler.Step("Set page title"))
{
ViewBag.Title = "Home Page";
}
이것이 근본적으로 다른 작업이라는 이유 때문입니다. 추적 할 때 특정 시점에 정보 조각을 쓰고 있습니다. 프로파일 링 할 때 시간 세그먼트를보고 있으며 using
문을 사용하면 해당 세그먼트의 범위를 지정할 수 있습니다.
그것은 조금 잔인한 수도 있지만, 나는 기꺼이 (표시되는 정보의 비 간섭 특성뿐만 아니라 때문에 프로파일 측면의 Trace
이상 Trace
를이 사용하는 거라고 페이지를 만드는 고약한 버릇이있다 매우 이상하게 보일).
필자는 필자의 수업을 통해 로거를 전달한 다음 필요한 경우 해당 정보를 컨트롤러에 조건부로 표시하는 방법을 사용했습니다.
컨테이너를 사용하여 내 로거 인스턴스를 HttpContext의 범위에 바인딩 한 다음 내 뷰 모델로 펌핑했습니다.