首页 新闻 赞助 找找看

请教日志管理的问题

0
悬赏园豆:30 [已解决问题] 解决于 2014-09-12 09:55

日志记录的数据比如:用户,时间,被访问的类、方法,以上几项都是好获得的,还有一项就是被访问/修改/删除的数据,如何得到如被修改前的数据,修改后的数据?

log
happydaily的主页 happydaily | 菜鸟二级 | 园豆:301
提问于:2014-09-04 10:59
< >
分享
最佳答案
0

对于更新,一般是先获取,然后更改值,最后保存。那么获取之后,序列化对象并存储,保存成功后,再序列化一次对象。

收获园豆:30
幻天芒 | 高人七级 |园豆:37175 | 2014-09-04 12:59

这个问题好像只有在数据库层面解决,因为不可能把数据全部拉到程序里处理,不然到不要数据库软件了。

我觉得用事务是不是可以解决,把用户,时间,被访问的类、方法这几个数据一起发到数据库,然后数据库里用触发器记录各种操作。

happydaily | 园豆:301 (菜鸟二级) | 2014-09-08 10:03

@happydaily: 如果要这样用触发器,那我表示对程序的性能堪忧。记录日志,本身应该是基础设施层的事情。不过,你的日志的定制化的(数据变化前,数据变化后),所以我觉得应该放在业务层处理。既然有这样记录日志的要求,那么我想应该是有其必要性的。

幻天芒 | 园豆:37175 (高人七级) | 2014-09-09 09:06

@幻天芒: 业务层表示没有数据,这玩意不好监控啊。

happydaily | 园豆:301 (菜鸟二级) | 2014-09-09 10:45

@happydaily: 业务层没数据,就去拿数据呀。再说了,你要更新,总是有数据的。

幻天芒 | 园豆:37175 (高人七级) | 2014-09-09 10:57

@幻天芒: 数据肯定是有的,比如update tableA set name='张三' where id>50,日志记录时要的是这段代码真实影响的行,还得取一次数据,效率也不高啊?

happydaily | 园豆:301 (菜鸟二级) | 2014-09-09 14:44

@happydaily: 比触发器好,呵呵~

幻天芒 | 园豆:37175 (高人七级) | 2014-09-09 16:25
其他回答(5)
0

类似的功能我只做过触发器,而且也无法满足你的需求。关注一下。

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-09-04 11:02
0

我一般都是在更新前,对修改的数据内容做个日志记录。

 

此外,你可以通过数据库系统的日志来获取历史数据,然后进行修正,这个,一般工程很大。

519740105 | 园豆:5810 (大侠五级) | 2014-09-04 11:05
0

类似的功能我是这样和客户说的,原来的系统报价只要10万,你想要这个简单的功能,只需要再加50万,

我咬咬牙,也就帮你做了。

爱编程的大叔 | 园豆:30839 (高人七级) | 2014-09-04 11:13

这么麻烦啦

支持(0) 反对(0) happydaily | 园豆:301 (菜鸟二级) | 2014-09-04 11:32

@happydaily: 只是为了加深你的印象而已,别被吓坏了。不过妥妥的方案涉及到很多东东。

另外对系统的性能将有极大的伤害。

还有就是需要记录到这个级别的50万其实真是小事了。

大部份的用户其实不是真的需要,只是他认为开发这个功能没有成本或者成本极低而已。

这个极其考验直接面对客户的人的经验,有时候客户真的只是天真,不是认真。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2014-09-04 11:42
0

只能自己记录数据状态了。

Firen | 园豆:5385 (大侠五级) | 2014-09-04 11:15
0

1。建一个表中来记录数据操作的增,删语句,时间,用户, 建一个表用来记录删除的数据,时间,用户(对该库数据定期删除)

也可以加写触发器

Up to Up | 园豆:202 (菜鸟二级) | 2014-09-04 12:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册