aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/log_subscriber.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/log_subscriber.rb')
-rw-r--r--activerecord/lib/active_record/log_subscriber.rb22
1 files changed, 16 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/log_subscriber.rb b/activerecord/lib/active_record/log_subscriber.rb
index d7b99d796d..74b5893bfb 100644
--- a/activerecord/lib/active_record/log_subscriber.rb
+++ b/activerecord/lib/active_record/log_subscriber.rb
@@ -1,12 +1,25 @@
module ActiveRecord
class LogSubscriber < ActiveSupport::LogSubscriber
+ def self.runtime=(value)
+ Thread.current["active_record_sql_runtime"] = value
+ end
+
+ def self.runtime
+ Thread.current["active_record_sql_runtime"]
+ end
+
+ def self.reset_runtime
+ rt, self.runtime = runtime, 0
+ rt
+ end
+
def initialize
super
@odd_or_even = false
end
def sql(event)
- connection.runtime += event.duration
+ self.class.runtime += event.duration
return unless logger.debug?
name = '%s (%.1fms)' % [event.payload[:name], event.duration]
@@ -26,14 +39,11 @@ module ActiveRecord
@odd_or_even = !@odd_or_even
end
- def connection
- ActiveRecord::Base.connection
- end
-
def logger
ActiveRecord::Base.logger
end
end
end
-ActiveRecord::LogSubscriber.attach_to :active_record
+ActiveRecord::LogSubscriber.runtime = 0
+ActiveRecord::LogSubscriber.attach_to :active_record \ No newline at end of file