log4j2异步记录器是否实际将数据插入MySQL?

时间:2014-07-01 19:50:00

标签: java mysql database jdbc log4j2

我知道log4j2用于记录信息。我真的很困惑log4jdbc appender。它实际上做了什么?我阅读了教程,但我真的不明白。当您通过jdbc将数据插入数据库时​​,它是否记录信息?或log4j2 logger实际上是ABLE登录数据库?

常规jdbc可以执行以下操作:

String query ="INSERT INTO 'table' ('blah' ...";
Statement st;
st.executeUpdate(query);

log4j异步记录器实际上具有等同于 - >的东西[st.executeUpdate(query);]哪个插入数据的速度要快很多?

感谢您的努力!!!

1 个答案:

答案 0 :(得分:1)

log4j2 JDBC appender将使用JDBC并为每个日志事件插入行。

  

JDBCAppender将日志事件写入关系数据库表   使用标准JDBC。    http://logging.apache.org/log4j/2.x/manual/appenders.html#JDBCAppender

至于

  

log4j异步记录器实际上具有等同于 - >的东西   [st.executeUpdate(query);]哪个插入数据的速度要快很多?

async appender不进行批量插入(批量执行executeBatch),这是我假设你所指的。批处理插入是由JDBC appender中的bufferSize控制的(参见上一个链接)。

异步appender是装饰器(它们包装像JDBC一样的appender),这样就可以使代码在appender阻塞时阻塞(即在这种情况下完成executeBatch时)。

还有另一个项目,我认为你与log4jdbc-log4j2混淆了。该项目将使用log4j2记录您的SQL语句。