使用Ruby MySQL时,如何将所有已执行的SQL语句记录到控制台/ stdout?
就像从rails输出的log / develop.log一样。
最佳答案
如果您指的是Ruby/MySQL,则提供了debug()函数,该函数执行与mysql_debug()相同的功能-如果您的客户端库是通过调试编译的,则可以为您获取DBUG to trace things。这可能会给您带来帮助(需要一些清理)。
另一种方法是capture the MySQL packets using tcpdump and decode them with maatkit。
第三种方法是alias Mysql.query and Mysql.real_query with your own functions进行日志记录。像这样的东西(未经测试!简单的例子!不处理块!):
class Mysql
alias_method :old_query, :query
def query(sql)
$stderr.puts "SQL: #{sql}"
old_query(sql)
end
end