2012-07-10 96 views
1

在故障诊断操作问题中,我发现有时难以诊断问题而没有更多细节。例如,我从时间戳中看到商户记录在特定日期发生了变化,并且前一天的交易处理也受到质疑。记录更改的内容可以帮助快速排除可能性。如何在Java中记录对存储的对象/记录的更改

是否有任何公用事业自动进行那种比较?我希望它能够像做:

String logDelta=SomeLibrary.describeChanges(bean1, bean2); 

我会希望有一个班轮的东西,如:

"lastName{'Onassis','Kennedy Onassis'}, favoriteNumber{16,50}" 

回答

0

这就是所谓的审计跟踪或审计日志,并且通常在数据库中使用触发器或存储过程完成数据库中的行的副本,并使用用户的名称和时间戳进行更改。出于合规性考虑,这样做很常见。我还没有看到任何为您管理它的软件包,因为它通常与数据库设计紧密耦合......您不一定需要每行或每个字段的副本,并且这样做可能会非常昂贵一个高度交易的环境。

尝试使用Google搜索“审计线索”

+0

感谢您使用某些适当的术语照亮光线。即使我将完整的历史记录保存在数据库中,而不是将增量记录到系统日志中,我仍然希望将信息直观地减少到仅更改。 – phatfingers 2012-07-10 16:42:52

+0

是的,这是一个相当简单的数据库报告。 – 2012-07-10 17:22:29

+0

的确如此,但是我宁愿不为每个单独的对象维护自定义代码,而只是使用泛化函数。我也没有兴趣将解决方案与数据库紧密结合。 – phatfingers 2012-07-10 17:33:29