使用Ruby MySQL时,如何将所有执行的SQL语句记录到console / stdout?
与rails的log / development.log输出类似。
答案 0 :(得分:1)
如果你的意思是Ruby/MySQL,它提供了一个与mysql_debug()执行相同功能的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
答案 1 :(得分:0)
Rails使用像ActiveRecord这样的ORM,它具有与之关联的记录器。 我不认为MySQL gem有记录器......