Rails コンソールでコマンドを実行すると、SQL クエリ ログによって出力が乱雑になり、読みにくくなる可能性があります。デバッグ。幸いなことに、このログ記録を無効にする簡単な方法があります。
コンソールでの SQL クエリのログ記録を抑制するには、ActiveRecord::Base.logger オブジェクトに新しい値を割り当てることができます。これを実現する方法は次のとおりです:
ログの無効化:
old_logger = ActiveRecord::Base.logger ActiveRecord::Base.logger = nil
old_logger 変数には、後で使用できるように元のロガーが保存されます。 ActiveRecord::Base.logger を nil に設定すると、すべての SQL クエリのログが事実上無効になります。
ログの再有効化:
デバッグ セッションが完了したら、元のロガーを再び割り当てることで、SQL クエリのログを復元できます。 ActiveRecord::Base.logger:
ActiveRecord::Base.logger = old_logger
これにより、SQL クエリのログが再度有効になり、将来の参照や診断のためにクエリの詳細な記録が提供されます。
ログ レベルの調整:
より微妙なアプローチとして、ActiveRecord::Base.logger のログ レベルを次のように調整することもできます。さまざまなレベルのログ情報を選択的に抑制または有効にします。たとえば、ログ レベルを 1 (または Logger::INFO) に設定すると、INFO 以上の優先順位を持つ SQL クエリのみがログに記録されます。
ActiveRecord::Base.logger.level = 1 # or Logger::INFO
ログ レベルを設定完了後は、必ずログ レベルを元の値に戻してください。アプリケーションのロギングの他の側面への影響を避けるためにセッションをデバッグします。
以上がデバッグを容易にするために Rails コンソールで SQL ログを一時的に無効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。