从log4j
属性文件中,我需要在多个表中插入数据。
所以我需要为jdbc
appender 编写多个查询以记录到数据库。
也许使用 FlumeAppender 将是您描述的场景的一个很好的解决方案。
Apache Flume 是一个分布式、可靠且可用的系统,用于有效地收集、聚合大量日志数据,并将其从许多不同的来源移动到集中式数据存储。FlumeAppender 接受 LogEvents 并将它们作为序列化的 Avro 事件发送到 Flume 代理以供使用。
更多细节在: https ://logging.apache.org/log4j/2.x/manual/appenders.html#FlumeAppender
似乎 log4j-package 中的库存 JDBCAppender 或我发现的其他 DB-appender 不允许每个日志事件多次插入。
将 2 个 JDBCAppender 附加到 log4j 可以解决您的问题。另一方面,拥有 2 个附加程序会导致一些事务开销,并且插入到数据库中的行彼此之间不会有任何关系。
我能想到的另一个解决方案是编写自己的附加程序,就像在问题如何在 log4j 中创建自己的附加程序?