mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
disable automatic explain if there is no logger [closes #4671]
This commit is contained in:
parent
d11347df72
commit
f251437415
3 changed files with 20 additions and 1 deletions
|
@ -19,6 +19,8 @@ module ActiveRecord
|
|||
# currently collected. A false value indicates collecting is turned
|
||||
# off. Otherwise it is an array of queries.
|
||||
def logging_query_plan # :nodoc:
|
||||
return yield unless logger
|
||||
|
||||
threshold = auto_explain_threshold_in_seconds
|
||||
current = Thread.current
|
||||
if threshold && current[:available_queries_for_explain].nil?
|
||||
|
|
|
@ -14,7 +14,7 @@ if ActiveRecord::Base.connection.supports_explain?
|
|||
base.connection
|
||||
end
|
||||
|
||||
def test_logging_query_plan
|
||||
def test_logging_query_plan_with_logger
|
||||
base.logger.expects(:warn).with do |message|
|
||||
message.starts_with?('EXPLAIN for:')
|
||||
end
|
||||
|
@ -24,6 +24,20 @@ if ActiveRecord::Base.connection.supports_explain?
|
|||
end
|
||||
end
|
||||
|
||||
def test_logging_query_plan_without_logger
|
||||
original = base.logger
|
||||
base.logger = nil
|
||||
|
||||
base.logger.expects(:warn).never
|
||||
|
||||
with_threshold(0) do
|
||||
car = Car.where(:name => 'honda').first
|
||||
assert_equal 'honda', car.name
|
||||
end
|
||||
ensure
|
||||
base.logger = original
|
||||
end
|
||||
|
||||
def test_collect_queries_for_explain
|
||||
base.auto_explain_threshold_in_seconds = nil
|
||||
queries = Thread.current[:available_queries_for_explain] = []
|
||||
|
|
|
@ -1400,6 +1400,9 @@ A threshold of +nil+ disables automatic EXPLAINs.
|
|||
The default threshold in development mode is 0.5 seconds, and +nil+ in test and
|
||||
production modes.
|
||||
|
||||
INFO. Automatic EXPLAIN gets disabled if Active Record has no logger, regardless
|
||||
of the value of the threshold.
|
||||
|
||||
h5. Disabling Automatic EXPLAIN
|
||||
|
||||
Automatic EXPLAIN can be selectively silenced with +ActiveRecord::Base.silence_auto_explain+:
|
||||
|
|
Loading…
Reference in a new issue