/// <summary> /// action执行后 /// </summary> /// <param name="filterContext"></param> public void OnActionExecuted(ActionExecutedContext filterContext) { Rlog rlog = filterContext.HttpContext.Items["Rlog"] as Rlog; rlog.ResponseTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); rlog.ResponseResult = Newtonsoft.Json.JsonConvert.SerializeObject(filterContext.Result); _logger.LogInformation(Newtonsoft.Json.JsonConvert.SerializeObject(rlog)); }
/// <summary> /// action执行前 /// </summary> /// <param name="filterContext"></param> public void OnActionExecuting(ActionExecutingContext filterContext) { //记录日志 //filterContext.ActionArguments 请求参,Dictionary字典类型 key是方法的参数名 value是参数值 //filterContext.ActionDescriptor.Parameters获取方法参数信息 名称等 Rlog rlog = new Rlog() { RequestTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), ActionName = filterContext.ActionDescriptor.DisplayName,//包含了控制器名称和方法名称 RequestParms = JsonConvert.SerializeObject(filterContext.ActionArguments[filterContext.ActionDescriptor.Parameters[0].Name]), }; //filterContext.HttpContext.Items 可以存一些自定义数据 以便在其他方法 如 OnResultExecuted中使用 filterContext.HttpContext.Items.Add("Rlog", rlog); }