首页 新闻 会员 周边

后台记录系统详细操作日志

0
悬赏园豆:20 [待解决问题]

我现在要细化系统日志,原先是有一张表来存操作日志的,在一些步骤操作后用存储过程来记录日志,原先的系统记录不够详细,如修改商品就记录日志内容是 :“修改商品:+商品名” ,如图:其余谁修改、修改时间、修改人、IP等等都有记录,这样就是日志内容太过简单了,不知道是修改了商品的那些内容。现在我细化成,日志内容包含有原来的值,修改后的值,如图:

我是在商品修改存储过程中,在执行UPDATE之前记录商品的原来属性值,UPDATE后也记录修改后的值,再一起写入到日志。困惑就是  商品的属性太多 ,都这样做法的话,代码量多,调用执行记录存储过程次数也多  ,  那修改商品的操作执行慢,  求教各位大神 ,有没有好的解决办法?

C#
米字格的主页 米字格 | 初学一级 | 园豆:54
提问于:2015-04-08 17:54
< >
分享
所有回答(3)
1

在业务层写代码,不要在存储过程里写恶劣的业务逻辑。

你这里的需求其实非常简单,修改前和修改后的商品是两个对象,属性不同的都筛选出来,然后构造日志信息对象,调用日志服务进行一次批量写入即可

JeffWong | 园豆:2328 (老鸟四级) | 2015-04-08 20:44
0

用业务层写,使用orm来实现,对需要记录的或已经变更的,通过配置来实现。

519740105 | 园豆:5810 (大侠五级) | 2015-04-08 21:50
0

写到存储过程里, 也不复杂, 在begin后, 根据传入的id取到记录保存到临时表, 更新完记录再把新值和临时表里的旧值一起分析下, 进日志表。   不就万事大吉了……。 

问天何必 | 园豆:3311 (老鸟四级) | 2015-04-09 09:26

我也想这样做,就是考虑,修改的属性一多,到时sql执行慢,调用修改一个商品,服务器压力大,反应慢,请问有这样的影响吗?

支持(0) 反对(0) 米字格 | 园豆:54 (初学一级) | 2015-04-09 09:37

@米字格: web服和数据服是独立的吗? 如果有单独的web服, 修改次数非常多, 建议还是放在web服上, 写在业务层。  如果就一台服务器, 就不用犹豫,按我说的做。 等慢的时候再优化表。 

 

另外, 像你这种日志, 一般是什么角色看? 如果是自己人看, 直接建个触发器得了, Update触发器。 整条记录都保存。 这样代码最少。 商品表修改一次记一次。 

支持(0) 反对(0) 问天何必 | 园豆:3311 (老鸟四级) | 2015-04-09 09:47

@问天何必: 是单独的服务器的,这个是系统分角色的,一般是超级管理员查看的

支持(0) 反对(0) 米字格 | 园豆:54 (初学一级) | 2015-04-09 10:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册