2012-03-28 31 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