使用LogBack登录数据库

使用log4j,我曾经有一个直接记录到我的数据库中的一个表的appender。 appender如下:

             

log4j是部署在JBoss 4.2上的Web应用程序的一部分。 log4j的问题在于它没有关闭它打开的数据库连接,甚至当我们在Web服务器上尝试Postgres数据源时,它正在耗尽池中的所有连接(这是一个完全不同的问题)。 这就是为什么我们决定尝试LogBack,看看它是否更好。 有趣的是,当我阅读LogBack文档时,它清楚地提到了以下内容:

DBAppender以独立于Java编程语言的格式将日志记录事件插入到三个数据库表中。

这三个表是logging_event,logging_event_property和logging_event_exception。 它们必须存在才能使用DBAppender。

据我所知,这意味着我已经绑定了这3个表来登录数据库。

在互联网上搜索解决方案产生的结果很少涉及扩展AppenderBase类,这对我来说在这个阶段是不方便的,因为这意味着必须进行更多的测试,因为我们知道我们有很多其他要求进行测试。 问题是:我可以为LogBack定义一个与我上面的log4j appenderfunction类似的appender吗?

非常感谢您的帮助。

是的,Logback需要3个数据库表,您不能跳过它们中的任何一个 ,你只能自定义他们的名字 。 这实际上是一个优点,Log4J根本没有记录exception,而Logback使用单独的表来进行堆栈跟踪。 它还记录mdc属性(第三个表)。

如果要自定义表和/或列名称,可以实现DBNameResolver