【问题标题】:Does log4j2 async logger actually insert data into MySQL?log4j2 异步记录器是否实际上将数据插入 MySQL?
【发布时间】:2014-08-22 11:33:58
【问题描述】:

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

常规的 jdbc 可以做如下事情:

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

log4j 异步记录器实际上是否有相当于 --> [st.executeUpdate(query);] 的东西,它插入数据的速度要快得多??

感谢您的努力!!!

【问题讨论】:

    标签: java mysql database jdbc log4j2


    【解决方案1】:

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

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

    至于

    log4j 异步记录器实际上是否有相当于 --> [st.executeUpdate(query);] 哪个插入数据快很多??

    异步附加程序不执行批量插入(批量执行executeBatch),这是我假设您所指的。我假设在 JDBC 附加程序中由bufferSize 控制批量插入(请参阅上一个链接)。

    异步附加器是装饰器(它们像 JDBC 一样包装附加器),它只是让您的代码在附加器阻塞时不会阻塞(即在这种情况下完成 executeBatch 时)。

    还有另一个项目,我认为您对log4jdbc-log4j2 感到困惑。该项目将使用 log4j2 记录您的 SQL 语句。

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多