通用權限管理平台--系統日志


通用權限管理平台利用過濾器實現自動記錄系統日志功能。

首先需要自定義日志過濾器屬性LogRequestAttribute,並且繼承ActionFilterAttribute,IActionFilter

在日志過濾器屬性類中實現基類IActionFilter的方法OnActionExecuting

void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
        {
            try
            {
                TLogDo log = new TLogDo();
                log.LogGuid = System.Guid.NewGuid().ToString();
                TUserDo user=DataAccess.FindById<TUserDo>(filterContext.HttpContext.User.Identity.Name);
                log.UserName = user == null ? "" : user.LoginId;
                log.Operation = OperationDescription;
                log.OpDate = System.DateTime.Now;
                log.Url = filterContext.HttpContext.Request.Url.ToString();
                log.IpAddress = filterContext.ActionParameters["IPAdress"] == null ? "" : filterContext.ActionParameters["IPAdress"].ToString(); //filterContext.HttpContext.Request.UserHostAddress;
                DataAccess.Add<TLogDo>(log);
            }
            catch
            {
            }
            finally
            {
            }
        }

 

另外,為了記錄模塊操作中文描述需要在此類中增加一個自定義屬性OperationDescription操作描述,這樣的話就可以達到記錄不同模塊不同操作。

這樣的話,自動日志記錄功能已經實現,接下來需要做的是,對需要日志記錄的Controller增加日志屬性,完成與日志的綁定。

[LogRequest(OperationDescription = "登錄")]
        public ActionResult LogOn()
        {           
            return View();
        }

這樣增加LogRequest屬性即可實現Action的日志功能。

 

演示地址:http://hnjgsoft.xicp.net/ 賬號:admin 密碼:888888

如發現地址無法訪問,請與本人聯系,QQ:42934067

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM