如何从log4j消息插入不同的db列

c8ib6hqw  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(141)

我正在Eclipse中构建一个jsf Web应用程序,并且我已经为该应用程序提供了一个记录器。我正在使用log4j API登录到我的服务器中的一个数据库。为了完成这个任务,我遵循了this教程,一切都工作正常。
记录器中的“消息”具有以下格式:* ((用户名))〈< clientNumber>〉-操作已记录 *

问题

由于这将进入一个数据库,我将不得不给予一个关于记录信息的报告,我需要能够过滤userName、clientNumber和Actions,但如果我有一个超长的字符串,并且所有信息都在“message”列中,我就无法真正做到这一点,所以我的第一个想法是:

***可能的解决方案#1***在将www.example.com文件中的消息插入到数据库之前,是否有一种方法可以解析该消息log4j.properties,以便将解析后的字符串插入到表中的相应列中?
***可能的解决方案#2***是否有办法欺骗www.example.com中的插入语句log4j.properties,以便我可以更改格式并在消息本身中添加逗号和引号,从而使API插入到其余列中(即 * userName ',' clientNumber ','actionLogged)
***可能的解决方案#3***当我在数据库中的表中执行插入操作时,我使用触发器解析消息,并将值插入到第二个表(或同一个表)中,其中包含正确的userName、clientNumber和Action列。

请给予一下,让我知道你认为什么是最好的方法。或者如果你想建议一个更好的解决方案,请继续,谢谢!!!
我的(~ M)

cgh8pdjw

cgh8pdjw1#

我建议任何使用log4J的人,如果您希望快速而简单地执行此操作,那么可以在插入数据库之前创建一个触发器。这样您就可以解析传入的消息,因为您无法真正使用log4J来解析它。因此,我在Table中添加了3个列userName然后我解析了log4j“message”,并将其填充到 insert 中的字段中。希望这能帮助有一天遇到同样问题的人。

相关问题