/// <summary> /// 写监控 /// </summary> /// <param name="m"></param> /// <param name="dtype"></param> private static async Task SyLogMonitor_Add(SyLogMonitorAdd m, int dtype) { await Task.Run(() => { try { using (var db = new fz_bigdataEntities()) { db.log_operation.Add(new log_operation { Id = Guid.NewGuid().ToString(), Type = dtype, ControllerName = m.ControllerName, ActionName = m.ActionName, HttpMethod = m.HttpMethod, Url = m.Url, ResponseTime = m.ResponseTime, RenderTime = m.RenderTime, TotalTime = m.ResponseTime + m.RenderTime, CreateIp = m.CreateIp, CreateUserId = m.CreateUserId, CreateUserName = m.CreateUserName, CreateAccount = m.CreateAccount, CreateTime = DateTime.Now }); db.SaveChanges(); } } catch (Exception e) { LogHelper.WriteLog(string.Format("{0}", DateTime.Now), e); } }); }
/// <summary> /// 渲染结束 /// </summary> /// <param name="filterContext"></param> public override void OnResultExecuted(ResultExecutedContext filterContext) { GetTimer(filterContext, "render").Stop(); string controllerName = filterContext.RouteData.Values["controller"].ToString(); string actionName = filterContext.RouteData.Values["action"].ToString(); string httpMethod = filterContext.HttpContext.Request.HttpMethod; var actionTimer = GetTimer(filterContext, "action"); var renderTimer = GetTimer(filterContext, "render"); SyLogMonitorAdd data = new SyLogMonitorAdd(); data.ControllerName = controllerName; data.ActionName = actionName; data.HttpMethod = httpMethod; data.Url = filterContext.HttpContext.Request.FilePath; data.CreateIp = Common.Function.GetIp(filterContext.HttpContext.Request); data.CreateTime = DateTime.Now; data.ResponseTime = Convert.ToDecimal(actionTimer.Elapsed.TotalSeconds); data.RenderTime = Convert.ToDecimal(renderTimer.Elapsed.TotalSeconds); if (filterContext.HttpContext.Session["UserInfo"] != null) { VModel.SyPassport.UserInfo user = filterContext.HttpContext.Session["UserInfo"] as VModel.SyPassport.UserInfo; if (user != null) { data.CreateUserId = user.Id; data.CreateUserName = user.Name; data.CreateAccount = user.Account; } } BigdataBll.SyLogMonitorWeb_Add(data); base.OnResultExecuted(filterContext); }
/// <summary> /// 执行结束 /// </summary> /// <param name="filterContext"></param> public override void OnActionExecuted(HttpActionExecutedContext filterContext) { if (filterContext.Request.Properties.ContainsKey(Key)) { var stopWatch = filterContext.Request.Properties[Key] as Stopwatch; if (stopWatch != null) { stopWatch.Stop(); System.Web.HttpContextWrapper context = ((System.Web.HttpContextWrapper)filterContext.Request.Properties["MS_HttpContext"]); string controllerName = filterContext.ActionContext.ActionDescriptor.ControllerDescriptor.ControllerName; string actionName = filterContext.ActionContext.ActionDescriptor.ActionName; string httpMethod = filterContext.Request.Method.ToString(); SyLogMonitorAdd data = new SyLogMonitorAdd(); data.ControllerName = controllerName; data.ActionName = actionName; data.HttpMethod = httpMethod; data.Url = filterContext.Request.RequestUri.ToString(); data.CreateIp = Common.Function.GetIp(context.Request); data.CreateTime = DateTime.Now; data.ResponseTime = Convert.ToDecimal(stopWatch.Elapsed.TotalSeconds); //if (filterContext.HttpContext.Session["UserInfo"] != null) //{ // Common.Model.UserInfo user = filterContext.HttpContext.Session["UserInfo"] as Common.Model.UserInfo; // if (user != null) // { // data.CreateUserId = user.Id; // data.CreateUserName = user.Name; // } //} BigdataBll.SyLogMonitorApi_Add(data); } } //base.OnActionExecuted(filterContext); }
/// <summary> /// 写监控 /// </summary> /// <param name="m"></param> public static void SyLogMonitorApi_Add(SyLogMonitorAdd m) { Task excetion = SyLogMonitor_Add(m, 2); }
/// <summary> /// 写监控 /// </summary> /// <param name="m"></param> public static void SyLogMonitorWeb_Add(SyLogMonitorAdd m) { Task excetion = SyLogMonitor_Add(m, 1); }