分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

Asp.net MVC通过自定义特性实现Action日志记录

发布时间:2023-09-06 01:23责任编辑:顾先生关键词:MVC

一、自定义特性

/// <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()); ???????} ???}

Asp.net MVC通过自定义特性实现Action日志记录

原文地址:http://www.cnblogs.com/tangchun/p/7803253.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved