为了在mysql慢查询中找到源,我想为活动记录发送的每个请求添加一个注释。在ActiveRecord发送请求之前,如何修改请求?
例如,我想在我的中央mysql慢查询日志中记录这个。
SELECT * FROM articles
-- File: refresh-article.rb发布于 2012-01-18 18:15:30
我用猴子补丁解决了这个问题
ActiveRecord::ConnectionAdapters::Mysql2Adapter.class_eval do
def execute_with_log(sql, name=nil)
sql = "-- Script: #{$0}\n#{sql}"
execute_without_log(sql, name)
end
alias_method_chain :execute, :log
end发布于 2011-04-18 01:04:48
ActiveRecord已经将带有计时信息的数据库请求记录到您的应用程序日志中。
发布于 2011-04-18 04:26:03
在你的rails应用程序中,你可以在log/(production|development).log中看到你的查询和计时。
然而,如果你想要更多的东西,我建议你去看看NewRelic in development mode。它是免费的,它会向您显示查询执行位置的源代码(看起来就像您想要的一样)。它确实是目前最好的日志/性能分析器之一。
https://stackoverflow.com/questions/5694715
复制相似问题