Railsコンソールでデータベース出力を非表示にするにはどうすればよいですか?


103

Railsの新しいバージョンでは、3から推測して、データベースクエリがコンソールに出力されます。これはほとんどの場合に便利ですが、見たくないときにどうすれば非表示にできますか?

回答:


177

これを行うより良い方法は、これをコンソールに入力することです:

ActiveRecord::Base.logger.level = 1 

nilに設定されているロガーへのポインターを使用しようとする問題を防ぐため(ソース:コンソールでのRails SQLロギングの無効化

オンに戻すには

ActiveRecord::Base.logger.level = 0

31
ありがとう。そして、背中にそれをオンにしますActiveRecord::Base.logger.level = 0
thebenedict 2013年

Mongoidでこれを行う方法はありますか?
ジェシーファーマー


9

短い答え... development.rbファイルでの値を変更または追加して、次のconfig.log_levelような行があるようにします。

config.log_level = :info

1
いいえ、これはコンソールで行われていることに影響を与えていないようです。また、プロジェクトファイルを変更する必要がないソリューションを希望します。
Roger Ertesvag、2011年

わかりました、ソリューションはwebrickで私のために機能しますが、他のサーバーを使用しているか、プロダクションモードまたはテストモードで実行している可能性がありますか?
madth3

3
ログファイルの内容を変更するために機能します。しかし問題は、ログファイルではなく、Railsコンソールに関するものです。
Roger Ertesvag、2011年

6

私の友人から:

your_query; nil

1
投稿の品質を改善するには、投稿が問題を解決する方法と理由を含めてください。
Mick MacCallum、2012年

7
これにより、Rubyコンソールが式の結果をコンソールにダンプするのを停止しますが、ActiveRecordがSQL情報をRailsロガーにダンプするのを停止することはありません。
eremzeit 2013

1
以前のコメント投稿者へ:これは質問に答えます、そしてそれは私にとってうまくいった唯一の答えです、もっと誰が望むことができますか?
ヴァルク2014年

3
これで問題が解決することはないと思います。@eremzeitが言ったように、これはすべてのSQLクエリがコンソールにダンプされるのを停止するのではなく、そのコマンドからの戻り値が出力されるのを停止するだけです...
opsidao

1
それは質問には答えませんが、結果を繰り返さないのに役立ちます
Rutger

4

Rails 3.2では、設定

config.logger.level = Logger::INFO

SQL出力をオフにするために私のためにうまくいきました。


ただし、これでもSQL出力はログファイルに記録されますか?
Joshua Pinter

-2

私は「必要な答え」をすでに得ていると思いますが、「静かな資産」の宝石をあなたにアドバイスしたいと思います。ログデータのほとんどは資産のコンパイルと包含であり、この宝石はそれを削除し、クエリとデータの動作を出力します。

楽しんで


1
質問がコンソールに出力についてです、ログファイルをない
ロジャーErtesvag
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.