Ответ 1
Хорошо, я нашел его. Это сработало:
config.after_initialize do
ActiveRecord::Base.logger = nil
end
По какой-то причине (возможно, обновленный камень) Rails теперь регистрирует все мои SQL-команды. Я запускаю автотест, и они также подвергаются спаму во время тестов. Как отключить его?
Я попытался добавить это в config/environment/test.rb, но это не сработало. logger
уже был nil
.
# ActiveRecord::Base.logger = nil
# ActiveRecord::Base.logger.level = 1
Rails 4.0.0
Хорошо, я нашел его. Это сработало:
config.after_initialize do
ActiveRecord::Base.logger = nil
end
Еще одна вещь, которую вы можете сделать, это вызвать этот код во время выполнения, он не обязательно должен находиться в файле конфигурации.
Например, если вы ввели свой конкретный тестовый пример
# test/functionals/application_controller_test.rb for example
ActiveRecord::Base.logger = nil
Он будет работать так же хорошо, и таким образом вы можете переключать его во время выполнения. Полезно, если вы хотите задушить несколько строк кода или блока.
В случае, если кто-то хочет на самом деле выбить ведение журнала SQL-запросов (без изменения уровня ведения журнала и при ведении журнала с их AR-моделей):
Строка, которая записывает в журнал (в Rails 3.2.16, в любом случае), является вызовом "debug" в lib/active_record/log_subscriber.rb: 50.
Этот метод отладки определяется ActiveSupport:: LogSubscriber.
Итак, мы можем выбить журнал, перезаписав его так:
module ActiveSupport
class LogSubscriber
def debug(*args, &block)
end
end
end