Esempio n. 1
0
        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
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
 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);
     }
 }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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);
            }
        }
Esempio n. 7
0
        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);
            }
        }