我正在为我的Web应用程序开发SQL Logger。我希望能够记录用户与GUI交互触发的SQL查询。我在Spring环境中工作,使用maven和mybatis。我将我的webapp打包成战争并将其部署到tomcat上。
我希望能够直接使用SQL来访问数据库。我可以尝试使用像Log4j中的SocketAppender / HTMLAppender,并发布查询,以便其他非SQL人员可以直接使用它而无需编辑它,或者从查询中删除垃圾以查看填充的数据。
我遇到了几个可以记录SQL的Logger工具。
我特别想要的是:
答案 0 :(得分:1)
我使用 jdbcdslog-exp 来处理这类情况。
将 jdbcdslog-1.0.6.2.jar 添加到classpath。
为log4j配置添加类别(如果需要,也为ResultSetLogger设置INFO - 小心OutOfMemory)
<category name="org.jdbcdslog.StatementLogger">
<priority value="INFO"/>
</category>
<category name="org.jdbcdslog.ResultSetLogger">
<priority value="FATAL"/>
</category>
如果需要按运行时切换语句记录,可以使用
启动log4jPropertyConfigurator.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>