zoukankan      html  css  js  c++  java
  • Asp.net MVC通过自定义特性实现Action日志记录

    一、自定义特性

    /// <summary>
        /// 描述特性
        /// </summary>
        [AttributeUsage(AttributeTargets.Method)]
        public sealed class DescribeAttribute : Attribute
        {
            private string _funDescribe;
    
            public DescribeAttribute() { }
    
            public DescribeAttribute(string funDescribe)
            {
                this._funDescribe = funDescribe;
            }
    
            public string FunDescribe
            {
                get { return _funDescribe; }
            }
        }

    二、在Action上面加入特性

    [Describe("系统主页面")]
            public ActionResult Index()
            {
                return View();
            }

    三、继承ActionFilterAttribute实现LogFilter日志

    public sealed class LogFilter : ActionFilterAttribute
        {
            public override void OnActionExecuted(ActionExecutedContext filterContext)
            {
                if (filterContext == null)
                {
                    throw new ArgumentNullException(nameof(filterContext));
                }
    
                object[] attrs = filterContext.ActionDescriptor.GetCustomAttributes(typeof(DescribeAttribute), false);
                if (attrs.Length > 0)
                {
                    string funDescribe = ((DescribeAttribute)attrs[0]).FunDescribe;
                }
                base.OnActionExecuted(filterContext);
            }
        }

    四、在App_Start文件夹下面加入全局日志过滤器

    public class FilterConfig
        {
            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new AuthorizeAttribute());
                filters.Add(new HandleErrorAttribute());
                filters.Add(new LogFilter());
            }
        }
  • 相关阅读:
    【23设计模式】总结
    【JAVA】内部类,内部接口
    【JAVA】接口
    【JAVA】抽象类,抽象方法
    【JAVA】类加载器
    【JAVA】枚举
    【JAVA】序列化
    【JAVA】异常笔记
    汇编笔记_第十一章
    汇编笔记_第十章
  • 原文地址:https://www.cnblogs.com/tangchun/p/7803253.html
Copyright © 2011-2022 走看看