拦截写入操作并生成用户日志

时间:2010-10-23 14:56:46

标签: java-ee struts servlet-filters

我想记录在我的Web应用程序中更改域的每个用户操作。当用户尝试创建,更新,删除某些数据时,操作必须保存到用户日志中。但是当用户操作列表时,生成报告。它不需要记录。

我是我当前的程序,我写了服务日志。并将该服务日志调用到每个操作方法(performCreate,performUpdate,performDelete)

有没有办法创建单个类来编写拦截所有写入操作的用户日志?

编辑: 我使用Struts 1.x

1 个答案:

答案 0 :(得分:1)

您可以使用Aspect Oriented Programmingaspectj中的简单解决方案如下所示:

 public aspect Logger {

    pointcut writeActions():
        execution (* *.perform*(..));

    void before(): writeActions(){
        // log the action 
    }

}

您还可以在方法执行之前或之后访问方法参数,获取返回值并执行代码。