【问题标题】:Log SQL that is communicated with the database记录与数据库通信的 SQL
【发布时间】:2013-07-30 03:33:45
【问题描述】:

我正在为我的 Web 应用程序开发 SQL 记录器。我希望能够记录用户与 GUI 交互触发的 SQL 查询。我在 Spring 环境中工作,使用 maven 和 mybatis。我将我的 webapp 打包成一个 war 并将其部署到 tomcat 上。

我希望能够直接使用 SQL 来访问数据库。我可以尝试像在 Log4j 中一样使用 SocketAppender/HTMLAppender,然后发布查询,以便其他非 SQL 人员可以直接使用它而无需编辑它,或者从查询中删除垃圾以查看填充的数据。

我遇到了几个可以记录 SQL 的 Logger 工具。

  1. jdbcdslog-exp
  2. P6Spy
  3. JdbcProxy
  4. log4jdbc
  5. SqlRecorder

我在寻找什么:

  1. 纯 SQL 查询几乎没有垃圾(例如触发查询的时间 jdbcdslog-exp recorded data
  2. 如果我得到一些不需要的数据,我希望能够将其删除以生成纯查询。我试图弄清楚 jdbcdslog 是如何做到的,但很难让它发挥作用。
  3. 我想知道上述任何工具是否可以为我们提供有关查询的一些元数据(例如查询属于哪个包),以便我可以按包分离出我的日志数据。

【问题讨论】:

    标签: java spring logging jdbc


    【解决方案1】:

    对于这种情况,我使用 jdbcdslog-exp

    jdbcdslog-1.0.6.2.jar 添加到类路径。

    将类别添加到 log4j 配置(如果需要,也可以为 ResultSetLogger 设置 INFO - 注意 OutOfMemory)

    <category name="org.jdbcdslog.StatementLogger">
      <priority value="INFO"/>
    </category>  
    <category name="org.jdbcdslog.ResultSetLogger">
      <priority value="FATAL"/>
    </category>
    

    如果您需要通过运行时切换语句日志记录,您可以使用

    启动 log4j
    PropertyConfigurator.configureAndWatch("log4j.xml", 60000);
    

    更改您的 jdbc 连接参数(此处以 jboss 中的 hsql 为例)

    来自

    <connection-url>jdbc:hsqldb:hsql://localhost:1801</connection-url>
    <driver-class>org.hsqldb.jdbcDriver</driver-class>
    

    <connection-url>jdbc:jdbcdslog:hsqldb:hsql://localhost:1801;targetDriver=org.hsqldb.jdbcDriver</connection-url>
    <driver-class>org.jdbcdslog.DriverLoggingProxy</driver-class>
    

    【讨论】:

    • 感谢您的回复。有没有一种方法可以让我获得触发查询的类。有一个 %C 参数可以与 Log4j 模式布局一起使用,它可以为我们提供触发查询的类,但是当与 jdbcdslog 一起使用时,它没有给我所需的类。
    • code.google.com/p/jdbcdslog/wiki/UserGuide你可以在配置参数参数jdbcdslog.printStackTrace部分找到。在stackTrace中你可以找到调用类和方法。
    • M,我希望能够访问此信息运行时。就像它作为查询的元数据出现一样。问题在这里stackoverflow.com/questions/17954848/…
    • 酷。听起来很有趣..但我认为您在每种情况下都需要堆栈跟踪。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    相关资源
    最近更新 更多