我知道log4j2用于记录信息。我真的很困惑log4jdbc appender。它实际上做了什么?我阅读了教程,但我真的不明白。当您通过jdbc将数据插入数据库时,它是否记录信息?或log4j2 logger实际上是ABLE登录数据库?
常规jdbc可以执行以下操作:
String query ="INSERT INTO 'table' ('blah' ...";
Statement st;
st.executeUpdate(query);
log4j异步记录器实际上具有等同于 - >的东西[st.executeUpdate(query);]哪个插入数据的速度要快很多?
感谢您的努力!!!
答案 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语句。