#ruby-on-rails #ruby-on-rails-3 #activerecord
#ruby-on-rails #ruby-on-rails-3 #activerecord
Вопрос:
Есть ли способ отключить / отключить вывод mysql в development.log?
Например, этот материал:
SQL (0.4ms) INSERT INTO `billing_infos` (`billing_method`, `city`, `company_id`, `country`, `created_at`, `email`, `fax_number`, `phone_number`, `postal_code`, `province`, `street`, `updated_at`) VALUES (NULL, 'Montreal', NULL, 'Canada', '2011-10-26 20:53:45', NULL, NULL, '(123) 456 7890', 'H1H1H1', 'QC', '1111 Temp', '2011-10-26 20:53:45')
(0.3ms) COMMIT
(0.2ms) BEGIN
(0.1ms) COMMIT
(0.1ms) BEGIN
(0.4ms) SELECT 1 FROM `sectors` WHERE (`sectors`.`name` = BINARY 'General 25' AND `sectors`.`id` != 1) LIMIT 1
Ответ №1:
Если вы хотите подавить почти весь вывод журнала, подход @Shirjeel будет работать, хотя я нахожу его немного жестким.
Если вы предпочитаете подавлять вывод для одного класса ActiveRecord и только в пределах определенного блока, вы можете использовать silence
:
BillingInfo.silence do
BillingInfo.create(:city => "Montreal")
BillingInfo.create(:city => "Ottawa")
... etc
end
Если вы хотите подавить вывод для всех подклассов ActiveRecord, вы можете сделать
ActiveRecord::Base.silence do
... manipulate database quietly here...
end
Я использую это, когда импортирую большой блок записей или создаю большие тестовые примеры.
Комментарии:
1. Оказывается, это устарело в Rails 4.0 из-за проблем с безопасностью потоков. Я не знаю альтернативы.
Ответ №2:
Добавьте следующую строку в свой файл config / environments / development.rb
config.log_level = :info