2012-07-10 30 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