Ruby MySQL将所有语句记录到stdout / console

时间:2009-11-12 10:09:31

标签: mysql ruby

使用Ruby MySQL时,如何将所有执行的SQL语句记录到console / stdout?

与rails的log / development.log输出类似。

2 个答案:

答案 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有记录器......