有没有办法通过JDBC启用
MySQL通用查询记录?通过我的搜索找到的最接近的事情是通过JDBC记录缓慢查询的能力(http://dev.MysqL.com/doc/refman/5.5/en/connector-j-reference-configuration-properties.html).也许我应该这样做,并将缓慢的查询阈值设置为0 ms?
我想通过MysqL以人类可读的格式记录所有查询,并希望指定应写入日志文件的位置.我知道我会做一个表演,但我的应用程序只有一个用户,并且很简单,如果性能受到重视,我会感到惊讶.我想试试看,无论如何看.
我相信另一个选择是打开二进制日志记录,并使用MysqLbinlog将二进制日志转换为人类可读的格式,但这听起来像一般的查询日志将提供一个更简单的方法来获取我想要的.
解决方法
您可以启用JDBC URL中的日志记录,如下所示:
jdbc:MysqL://host/db?logger=com.MysqL.jdbc.log.Log4JLogger&profilesql=true
其他日志后台可用(CommonsLogger,Slf4jLogger,JDK14Logger).我相信由于许可问题,Log4J日志记录在某一时刻被删除,因此它可能无法与您的JDBC驱动程序版本一起使用.
当然,您需要在类路径中使用相关的日志记录库的JAR以及配置文件(log4j.properties).一旦您看到正在记录的内容,我将首先将根级别设置为TRACE,以查看发生的情况并收紧日志级别和类别.
进一步阅读:
> https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html
> http://docs.oracle.com/cd/E17952_01/mysql-monitor-2.3-en/mem-qanal-using-cj.html
HTH