log4j db appender - db中的日志事件类型

时间:2014-12-11 11:17:28

标签: java log4j

我在我的java网络应用程序中使用log4j2。

我已将其配置为在数据库中存储日志信息,后者用于报告。

我想在日志表的一列中存储为此日志生成的事件类型。这些是应用程序事件,如登录/注销/更改密码/删除记录等。

我在数据库中为每种类型的事件都有一个单独的表,并且每个事件都有一个单独的记录器/附加器,但这使得它很麻烦。

有没有一种标准的方法来处理这种情况?

由于

1 个答案:

答案 0 :(得分:0)

简单的解决方案是创建一个EventLoggingService,其中包含将特定事件添加到数据库的方法(或构建器)。如果需要,您可以在其中添加单个记录器以将事件记录到日志追加器。

这样,您可以在将事件写入数据库之前确保该服务具有所有必需的信息。它也很容易测试和使用,您可以使用IDE查找记录事件的所有位置。

另一个解决方案是创建一个全局记录器(即public static final Logger ... "EventLogger"),然后您可以在许多地方使用它来记录事件。这样更容易设置,如果您已经有一个写入数据库的appender但是更难以提取事件详细信息(如类型和属性),则可以避免重复。