Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在log4j中,如何为不同的表编写不同的查询以记录到数据库_Java_Log4j_Database Connection - Fatal编程技术网

Java 在log4j中,如何为不同的表编写不同的查询以记录到数据库

Java 在log4j中,如何为不同的表编写不同的查询以记录到数据库,java,log4j,database-connection,Java,Log4j,Database Connection,从log4j属性文件中,我需要在多个表中插入数据 因此,我需要为一个jdbcappender编写多个查询,以便记录到数据库。似乎log4j包中的库存jdbappender或我发现的其他DB appender不允许每个日志事件多次插入 将2个JDBCAppender附加到log4j可以解决您的问题。另一方面,拥有两个appender会导致一些事务开销,插入数据库的行之间不会有任何关系 我能想到的另一个解决方案是编写自己的appender,如问题的公认答案中所述,也许使用FlumeAppender将

log4j
属性文件中,我需要在多个表中插入数据


因此,我需要为一个
jdbc
appender编写多个查询,以便记录到数据库。

似乎log4j包中的库存jdbappender或我发现的其他DB appender不允许每个日志事件多次插入

将2个JDBCAppender附加到log4j可以解决您的问题。另一方面,拥有两个appender会导致一些事务开销,插入数据库的行之间不会有任何关系


我能想到的另一个解决方案是编写自己的appender,如问题的公认答案中所述,也许使用FlumeAppender将是您描述的场景的一个很好的解决方案

Apache Flume是一个分布式、可靠且可用的系统,用于高效地收集、聚合大量日志数据,并将其从许多不同的源移动到集中的数据存储。FlumeAppender获取日志事件并将它们作为序列化的Avro事件发送给Flume代理以供使用

详情请参阅:

two appender将只允许编写两个查询,请建议自定义appender,以及如何实现这一点。问题中接受的答案显示了从何处开始。实际实现取决于您的日志表结构,但您可以使用log4jdbcapender作为示例()