2012-03-28 54 views
2

我在Eclipse中構建了一個jsf Web應用程序,並且我給了應用程序一個記錄器。我正在使用log4j API登錄到我的服務器中的數據庫。爲了實現這一點,我遵循this教程,一切工作正常。如何從log4j消息插入到不同的db列中

的 「消息」 放入記錄的格式如下:((用戶名))< < clientNumber >> - actionLogged

問題

,因爲這是進入一個數據庫和我將不得不提供一個關於記錄信息的報告,我需要能夠通過userName,clientNumber和Actions進行篩選,但如果我有一個超級長的字符串all 「消息」欄中的信息,所以我的第一個oughts是這些:

可能的解決方案#1 是否有辦法之前,我將它插入到數據庫,這樣我可以插入解析字符串到相應的列來解析在log4j.properties文件的消息在桌子上?

可能的解決方案#2 有沒有一種方法,騙取insert語句在log4j.properties,這樣我可以改變格式,並添加逗號,引號的消息本身,這樣的API插入到列的剩餘部分(即*用戶名「‘clientNumber’,」 actionLogged)

可能的解決方案#3 當我插入到我的數據庫表中,我使用觸發器來解析消息並將這些值插入到第二個表格(或同一個表格)中erName,clientNumber和Action Columns。

請給這個想法,讓我知道你認爲是最好的方法。或者如果您想提出更好的解決方案,請繼續,謝謝!

〜MYY

回答

1

我建議使用log4j的人是,如果你想快速和簡單的方法來做到這一點,是在數據庫插入之前創建一個觸發器。這樣你可以解析messahe進來,因爲你不能用log4J真正解析它。所以我所做的是在我的Table,userName,ClientId和Action中添加了3列。然後我解析了log4j「消息」,並用它填充了插入中的字段。希望這有助於某個人有同樣的麻煩,我做了。

+0

以及如何設置觸發器? – badera 2017-04-19 12:58:44