コード例 #1
0
ファイル: BigdataBll.cs プロジェクト: maziweis/basic
        /// <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);
                }
            });
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
ファイル: MonitorApiAttribute.cs プロジェクト: maziweis/basic
        /// <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);
        }
コード例 #4
0
ファイル: BigdataBll.cs プロジェクト: maziweis/basic
 /// <summary>
 /// 写监控
 /// </summary>
 /// <param name="m"></param>
 public static void SyLogMonitorApi_Add(SyLogMonitorAdd m)
 {
     Task excetion = SyLogMonitor_Add(m, 2);
 }
コード例 #5
0
ファイル: BigdataBll.cs プロジェクト: maziweis/basic
 /// <summary>
 /// 写监控
 /// </summary>
 /// <param name="m"></param>
 public static void SyLogMonitorWeb_Add(SyLogMonitorAdd m)
 {
     Task excetion = SyLogMonitor_Add(m, 1);
 }