public override void OnActionExecuting(HttpActionContext actionContext) { base.OnActionExecuting(actionContext); WebApiMonitorLog MonLog = new WebApiMonitorLog(); MonLog.ExecuteStartTime = DateTime.Now; //获取Action 参数 MonLog.ActionParams = actionContext.ActionArguments; MonLog.HttpRequestHeaders = actionContext.Request.Headers.ToString(); MonLog.HttpMethod = actionContext.Request.Method.Method; actionContext.Request.Properties[Key] = MonLog; var form = System.Web.HttpContext.Current.Request.Form; #region 如果参数是实体对象,获取序列化后的数据 Stream stream = actionContext.Request.Content.ReadAsStreamAsync().Result; Encoding encoding = Encoding.UTF8; stream.Position = 0; string responseData = ""; using (StreamReader reader = new StreamReader(stream, encoding)) { responseData = reader.ReadToEnd().ToString(); } if (!string.IsNullOrWhiteSpace(responseData) && !MonLog.ActionParams.ContainsKey("__EntityParamsList__")) { MonLog.ActionParams["__EntityParamsList__"] = responseData; } #endregion }
public override void OnActionExecuting(HttpActionContext actionContext) { base.OnActionExecuting(actionContext); WebApiMonitorLog MonLog = new WebApiMonitorLog(); MonLog.UserName = actionContext.RequestContext.Principal.Identity.IsAuthenticated ? actionContext.RequestContext.Principal.Identity.Name : "Anonymous"; MonLog.ExecuteStartTime = DateTime.Now; //获取Action 参数 MonLog.ActionParams = actionContext.ActionArguments; MonLog.HttpRequestHeaders = actionContext.Request.Headers.ToString(); MonLog.HttpMethod = actionContext.Request.Method.Method; MonLog.ActionUri = actionContext.Request.RequestUri; actionContext.Request.Properties[Key] = MonLog; var form = System.Web.HttpContext.Current.Request.Form; Stream stream = actionContext.Request.Content.ReadAsStreamAsync().Result; Encoding encoding = Encoding.UTF8; string responseData = ""; using (StreamReader reader = new StreamReader(stream, encoding)) { responseData = reader.ReadToEnd().ToString(); } if (!string.IsNullOrWhiteSpace(responseData) && !MonLog.ActionParams.ContainsKey("__EntityParamsList__")) { MonLog.ActionParams["__EntityParamsList__"] = responseData; } }
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { WebApiMonitorLog MonLog = actionExecutedContext.Request.Properties[Key] as WebApiMonitorLog; MonLog.ExecuteEndTime = DateTime.Now; MonLog.ActionName = actionExecutedContext.ActionContext.ActionDescriptor.ActionName; MonLog.ControllerName = actionExecutedContext.ActionContext.ActionDescriptor.ControllerDescriptor.ControllerName; LoggerHelper.Monitor(MonLog.UserName,MonLog.ActionUri.ToString(),MonLog.ActionName,MonLog.GetLoginfo()); if (actionExecutedContext.Exception != null) { LoggerHelper.Error(MonLog.UserName, MonLog.ActionUri.ToString(), MonLog.ActionName, MonLog.GetLoginfo(), actionExecutedContext.Exception); } }
public override void OnActionExecuting(HttpActionContext actionContext) { base.OnActionExecuting(actionContext); WebApiMonitorLog MonLog = new WebApiMonitorLog(); MonLog.ExecuteStartTime = DateTime.Now; //获取Action 参数 MonLog.ActionParams = actionContext.ActionArguments; MonLog.HttpRequestHeaders = actionContext.Request.Headers.ToString(); MonLog.HttpMethod = actionContext.Request.Method.Method; actionContext.Request.Properties[Key] = MonLog; }
public override void OnActionExecuting(ActionExecutingContext actionContext) { base.OnActionExecuting(actionContext); actionContext.HttpContext.Request.EnableBuffering(); WebApiMonitorLog MonLog = new WebApiMonitorLog(); MonLog.ExcuteStartTime = DateTime.Now; var controllerActionDescriptor = actionContext.ActionDescriptor as ControllerActionDescriptor; //获取Action 参数 MonLog.ActionParams = actionContext.ActionArguments; MonLog.HttpRequestHeaders = actionContext.HttpContext.Request.Headers.ToString(); MonLog.HttpMethod = actionContext.HttpContext.Request.Method; MonLog.IP = actionContext.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); byte[] arr = ObjectToBytes(MonLog); actionContext.HttpContext.Session.Set(Key, arr); }
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { WebApiMonitorLog MonLog = actionExecutedContext.Request.Properties[Key] as WebApiMonitorLog; MonLog.ExecuteEndTime = DateTime.Now; MonLog.ActionName = actionExecutedContext.ActionContext.ActionDescriptor.ActionName; MonLog.ControllerName = actionExecutedContext.ActionContext.ActionDescriptor.ControllerDescriptor.ControllerName; LoggerHelper.Monitor(MonLog.GetLoginfo()); if (actionExecutedContext.Exception != null) { string Msg = string.Format(@" 请求【{0}Controller】的【{1}】产生异常: Action参数:{2} Http请求头:{3} 客户端IP:{4}, HttpMethod:{5} ", MonLog.ControllerName, MonLog.ActionName, MonLog.GetCollections(MonLog.ActionParams), MonLog.HttpRequestHeaders, MonLog.GetIP(), MonLog.HttpMethod); LoggerHelper.Error(Msg, actionExecutedContext.Exception); } }
public override void OnActionExecuted(ActionExecutedContext actionExecutedContext) { base.OnActionExecuted(actionExecutedContext); LogHelper.logpath = logpath; byte[] vs; if (!actionExecutedContext.HttpContext.Session.TryGetValue(Key, out vs)) { LogHelper.WriteErrorLog(null, "尝试获取值失败"); return; } WebApiMonitorLog MonLog = BytesToObject(vs) as WebApiMonitorLog; actionExecutedContext.HttpContext.Session.Clear(); MonLog.ExcuteEndTime = DateTime.Now; MonLog.ActionName = actionExecutedContext.RouteData.Values["Action"].ToString(); MonLog.ControllerName = actionExecutedContext.RouteData.Values["Controller"].ToString(); LogHelper.WriteLog(null, MonLog.GetLoginfo()); if (actionExecutedContext.Exception != null) { IDictionary <string, object> redataList = MonLog.ActionParams; string redata = string.Empty; foreach (string key in redataList.Keys) { redata += key + " , "; } string Msg = string.Format(@" 请求【{0}Controller】的【{1}】产生异常: Http请求头:{2} 客户端IP:{3}, 请求方法:{4} 请求参数:{5}", MonLog.ControllerName, MonLog.ActionName, MonLog.HttpRequestHeaders, MonLog.IP, MonLog.HttpMethod, redata); LogHelper.WriteErrorLog(actionExecutedContext.Exception, Msg); // throw new Exception("发生异常:" + actionExecutedContext.Exception.Message); } }