博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何记录系统(oa)的操作日志 ?
阅读量:4967 次
发布时间:2019-06-12

本文共 879 字,大约阅读时间需要 2 分钟。

  并不是把项目运行日志打印的文件或者控制台,而是需要把 谁,什么时候,操作了什么.操作的内容是什么,显示出来给使用oa的人员查阅.

  例如:更新了一个客户的名字.就需要记录为 谁,什么时候,修改了 客户,客户原名字,客户的新名字 记录下来.

  设计思路有:

  1.在action 层使用spring aop.

  好处是一个action 层的方法,即使包含了多个service 层的方法(操作),也会被看着是一个操作来记录.

  问题是:action 层从jsp 传过来的参数是HttpServeletRequest 类型,根本不知道传过来的参数 到底是什么.

  2.在service 层使用spring aop.

  好处是可以获取到具体的参数.

  问题是:假如多个多个service 层方法组成一个action 层的方法,日志将会记录多个操作,过于复杂,普通操作人员看不懂.

  3.直接在action层手写.不使用spring aop

  将日志记录到数据库.好处是可以将日志写的非常具体.

  问题是: 每个方法都写,太累!

  

  最后使用方法2.

  因为只对增加,删除,修改做日志,这样action 层一个方法都只有一个需要事务的方法(增删改),所以是一对一,没什么问题,可以写的比较清晰.

  实现的技术有 :在实体类添加自定义注解+spring aop +实体类添加getNameForLog() 方法.

  getNameForLog() 方法会返回一个对象唯一的标识,如名字,如Id.通过这个方法可以在aop 中获取方法的参数对象的唯一名字.这个名字就是日志中的"操作的内容是什么"的内容,可以让一般人看的懂是操作了什么对象.

  有一个问题是:不知道在aop 中获取参数更新前的数据.因为update(obj) 中的obj 已经是提交用于更新的.

  在此也请教一下有没有其他更好的方法实现这种日志记录呢?谢谢!

  

转载于:https://www.cnblogs.com/predisw/p/4739681.html

你可能感兴趣的文章
Linux压缩那些事儿
查看>>
实验1
查看>>
ActionBar在Android2.x的实现,类似新版微信界面。
查看>>
python_day1
查看>>
访问者模式(Visitor)
查看>>
linux 重新编译低版本gcc
查看>>
git log 查看某文件的修改历史
查看>>
列的拼接
查看>>
CSS3小模块hover左右交替互换动画
查看>>
JVM垃圾收集器
查看>>
在火狐浏览器中获得borderColor的值
查看>>
codeforces-gym101982E(最小割)
查看>>
详解Struts2拦截器机制
查看>>
codeforces 817C Really Big Numbers
查看>>
Zjoi2017树状数组
查看>>
jquery Ajax的使用
查看>>
Educational Codeforces Round 32 E 巨型背包
查看>>
python读取目录下的相似文件进行合并
查看>>
从头开始搭建一个mybatis+postgresql平台
查看>>
js 判断用户是手机端还是电脑端访问
查看>>