2011-10-26 4 views
1

development.logにmysql出力をサイレント/ディセーブルする方法はありますか?例えばSilence ActiveRecord/MySQLログはRails 3.1で出力されますか?

このようなもの:

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

追加設定/環境/ development.rbファイルに行以下

config.log_level = :info

4

あなたはShirjeelさん@ほぼすべてのログ出力を抑制したい場合私はそれが少し重い手を見つけるが、アプローチは動作します。

あなたは、単一のActiveRecordクラスの出力を抑制し、かつ、特定のブロックの中に、あなたはsilenceを使用することができます希望する場合:

BillingInfo.silence do 
    BillingInfo.create(:city => "Montreal") 
    BillingInfo.create(:city => "Ottawa") 
    ... etc 
end 

あなたがのために、すべてののActiveRecordのサブクラスを出力を抑制したい場合は、することができますdo

ActiveRecord::Base.silence do 
    ... manipulate database quietly here... 
end 

これは、大きなブロックのレコードをインポートしたり、大きなテストケースを生成しているときに使用します。

+0

これは、スレッドの安全性の問題が原因でRails 4.0で廃止されました。私が知っている選択肢はありません。 – aNoble

関連する問題