From 4a0142f6a60309e4551781265c077827dcc306fc Mon Sep 17 00:00:00 2001 From: James Mason Date: Thu, 18 Jan 2018 17:43:12 -0800 Subject: [PATCH] Find source of queries (cherry picked from commit 458392ef0d334173f65eac41eb23345e3201a024) --- .../active_record_log_subscriber.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 config/initializers/active_record_log_subscriber.rb diff --git a/config/initializers/active_record_log_subscriber.rb b/config/initializers/active_record_log_subscriber.rb new file mode 100644 index 00000000..52ec87a7 --- /dev/null +++ b/config/initializers/active_record_log_subscriber.rb @@ -0,0 +1,17 @@ +# http://www.jkfill.com/2015/02/14/log-which-line-caused-a-query/ +module LogQuerySource + def debug(*args, &block) + return unless super + + backtrace = Rails.backtrace_cleaner.clean caller + + relevant_caller_line = backtrace.detect do |caller_line| + !caller_line.include?('/initializers/') + end + + if relevant_caller_line + logger.debug(" ↳ #{ relevant_caller_line.sub("#{ Rails.root }/", '') }") + end + end +end +ActiveRecord::LogSubscriber.send :prepend, LogQuerySource