高木のブログ

Rails Consoleで表示されるSQLのログを非表示にする

2020/11/20

普段はどんなSQLが発行されたかがわかるのでとても便利だが、大量にSQLが発行される場合は逆に邪魔になる。
しかも出力をしているので、その分処理時間も無駄に掛かってしまう。

その時は、loggerの中身をnilにしてしまえばよい。

ActiveRecord::Base.logger = nil

元に戻せるように、既存の中身は退避させておくといいかも。

old_logger = ActiveRecord::Base.logger
ActiveRecord::Base.logger = nil

ActiveRecord::Base.logger = old_logger

簡単に切り替えられるメソッド作った。

def toggle_logger
  if ActiveRecord::Base.logger
    @old_logger = ActiveRecord::Base.logger
    ActiveRecord::Base.logger = nil
  else
    ActiveRecord::Base.logger = @old_logger
  end
end

参考

rails consoleでログにsqlを表示させない方法 - Qiita


Pixela