使用MVC过滤器保存操作日志

//定义过滤器

public class  LogAttribute : ActionFilterAttribute
{
/// <summary>
/// 以逗号间隔
/// </summary>
private readonly string _parameterNames;

public BizActivityLogAttribute( string parameters)
{

_parameterNames = parameters;

}
public override void OnActionExecuted(ActionExecutedContext filterContext)
{

var _logTypeName = string.Format("{0}/{1}", filterContext.ActionDescriptor.ControllerDescriptor.ControllerName, filterContext.ActionDescriptor.ActionName);

Dictionary<string, string> paramDic = new Dictionary<string, string>();

foreach (var param in _parameterNames.Split(‘,‘))
{
var paramValue = filterContext.Controller.ValueProvider.GetValue(param);

if (!paramDic.ContainsKey(param))
{
paramDic.Add(param, paramValue.AttemptedValue);
}
}

//然后就可以使用Log4Net之类的存储参数了...
}
}

//使用过滤器

[LogAttribute( "msg,msgList")]
public ActionResult GetMessage( [ModelBinder(typeof(JsonBinder<CMessage>))]CMessage msg,
[ModelBinder(typeof(JsonBinder<List<CMessage>>))]List<CMessage> msgList
)
{

return View();
}

时间: 2024-10-13 06:44:51

使用MVC过滤器保存操作日志的相关文章

javaWEB SSM AOP+注解保存操作日志

本篇文章的诞生离不开这篇文章的作者:http://blog.csdn.net/czmchen/article/details/42392985. 前言 操作日志在javaWeb的业务系统中是在是太常见的功能了,主要记录用户再什么时间,什么位置进行了什么操作.如果每新增一个功能都要写一个插入代码的话,是非常不容易维护的.加一个字段就要在每个插入语句上加入这个字段.所以AOP+注解的优势就显现了出来,不仅如此,当我们有了这套代码以后,可以通用在该系统的wap端或者其他的系统中,不必修改太多的代码.针

OSharp3.0框架解说系列(6.2):操作日志与数据日志

前言 在<[开源]OSharp框架解说系列(6.1):日志系统设计>中,我们已经设计并实现了一个可扩展的日志系统,只要定义好输出端的Adapter,就可以以任意形式输出日志信息. 在日志开发中,有些日志记录需求是常规需要的,比如操作日志,数据变更日志,系统异常日志等,我们希望把这些常规需求都集成到OSharp框架当中.有了内置的支持,在做开发的时候,只需要很简单的配置,就可以实现相关需求. 关于三类日志,这里先简要描述一下: 操作日志:粗略描述系统用户(如管理员.业务人员.会员等)对系统的业务

MVC过滤器:自定义操作过滤器

一.操作过滤器 1.定义 操作过滤器用于实现IActionFilter接口以及包装操作方法执行.IActionFilter接口声明两个方法:OnActionExecuting和OnActionExecuted.OnActionExecuting在操作方法之前运行.OnActionExecuted在操作方法之后运行,可以执行其他处理,如向操作方法提供额外数据.检查返回值或取消执行操作方法. 查看ActionFilterAttribute类的定义: #region 程序集 System.Web.Mv

MVC 记录操作日志与过滤特殊字符

最近进行的MVC系统需要用到记录操作日志和过滤特殊字符的功能,如果每个action中都调用记录日志的方法就太麻烦了,所以根据需要结合mvc的过滤机制 写了个特殊字符验证与记录操作日志的公用类: 1 public class CustomFilterAttribute : ActionFilterAttribute 2 { 3 public CustomFilterAttribute() 4 { 5 IsLog = false; 6 FilterSpecialChar = true; 7 } 8

MVC增加操作日志

在后台管理中,有一些操作是需要增加操作日志的,尤其是对一些比较敏感的金额类的操作,比如商城类的修改商品金额.删除商品.赠送金额等人工的操作.日志中记录着相关操作人的操作信息,这样,出了问题也容易排查. 那么如何高效统一的处理增加这些日志呢?下面,分享一下我的思路及做法. 1.建日志相关表.需要建两个表,一是日志类型表(ActivityLogType),二是日志表(ActivityLog), 相关的表结构如下: 日志类型表:Id,SystemKeyword,Name,Enable (1 自动投标设

SSH基于Hibernate eventListener 事件侦听器的操作日志自动保存到数据库

在spring xml配置文件中添加配置,包含:model.listener 在model中增加需要写入数据库对应表的model 在auditLog.xml配置文件中配置自己项目中,需要进行日志记录的model类shortName,以及相关属性. 相关代码如下: 首先spring xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframew

mysql颠覆实战笔记(三)-- 用户登录(二):保存用户操作日志的方法

版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址. 现在我们接着上节课,完成第二个功能,不管成功不成功都记录一个日志. 一.回顾上节课内容,我们在user_log表中添加一个字段 user_id.  在上一节课的存储过程新增一行代码,如下: BEGIN set @gid=0; set @user_name=''; set @_res

如何实现企业管理系统的操作日志功能

如何实现企业管理系统的操作日志功能 实现思路解析:在做企业管理系统的同时,操作日志这一功能是必不可少的:所谓的操作日志就是记录一个用户从登陆时开始,到退出登陆时结束,记录这一过程中用户的全部操作:这里用.Net MVC为例 第一步:数据库 表1:用户日志(Sys_UserLoginLog) 列名 数据类型 主键/外键 说明 LoginID int 主键 日志ID StaffID int 外键 员工ID operationLog nchar(50) 操作内容 operationDate datet

MVC过滤器详解和示例

原文  http://blog.csdn.net/ankeyuan/article/details/29624005 MVC过滤器一共分为四个:ActionFilter(方法过滤器),ResultFilter(结果过滤器,感觉不是很好听,就这样叫吧),AuthorizationFilter(授权过滤器),ExceptionFilter(异常处理过滤器) 过滤器类型 接口 默认实现 描述 Action IActionFilter ActionFilterAttribute 在动作方法之前及之后运行