I want to create the log response but, I cant get the result. I cannot hit the LogResponse file.
I have a file
public class LogResponse : ActionFilterAttribute
{
public LogResponse()
{
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
Log("OnActionExecuting", filterContext.RouteData);
Debug.WriteLine("TEST ");
}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
Log("OnActionExecuted", filterContext.RouteData);
}
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
Log("OnResultExecuting", filterContext.RouteData);
}
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
Log("OnResultExecuted", filterContext.RouteData);
}
private void Log(string methodName, RouteData routeData)
{
var controllerName = routeData.Values["controller"];
var actionName = routeData.Values["action"];
var message = String.Format("{0} controller:{1} action:{2}", methodName, controllerName, actionName);
System.IO.StreamWriter file = new System.IO.StreamWriter(@"F:\\test.txt");
file.WriteLine(message);
file.Close();
}
}
Now, I have a home controller like :
[System.Web.Http.AllowAnonymous]
[LogResponse]
public class HomeController : ApiController
{
[System.Web.Http.HttpGet]
public string Index()
{
return "Test API";
}
}
Here, when I keep the debug point, I can see it hitting Index method, but it does not hit Log Response method.
I am using this for the first time. I have added a route also. And in the url, I hit it with API/Home/Index.
Can anyone let me know why i am not hitting my Log Response file ?