在我的工作场所,我们编写了一个自定义log4j appender,它将日志消息写入数据库(异步使用专用线程,因此没有性能损失)。 我更喜欢写入日志文件 - 基于数据库的日志更容易查询和分析。
是否有一个开源解决方案来执行此操作(特别针对log4j或任何其他java记录器)?
我们的appender有一些东西,我希望在另一种方法中看到:
我们的appender支持以下列,我希望在我们找到的任何解决方案中看到所有这些列。
答案 0 :(得分:2)
log4j还提供了一个DBAppender类(log4j需要一组特定的表来使用此appender进行记录)。 http://logging.apache.org/log4j/companions/receivers/apidocs/org/apache/log4j/db/DBAppender.html
此处有一个更新的非Apache jdbc记录器,您可能还想尝试: http://www.dankomannhaupt.de/projects/index.html
答案 1 :(得分:1)
只是好奇,难道不会严重影响托管此类appender的应用程序的性能吗?即使您异步执行,直接登录到关系数据库也是非常昂贵的。
答案 2 :(得分:0)
您不需要 LOG4J 的自定义附加程序来写入数据库。您可以使用与Apache分发捆绑在一起的JDBCAppender。
根据APACHE的文档,此API可能在将来被替换。但就目前而言,我们使用它并且效果非常好。