0

MongoDB とのやり取りに Mongoid を使用しています。開発中、私は通常、Mongo が行っていることのログを見るのが好きです。ただし、見たくない冗長ログが過剰に発生する例が 1 つあります。この特定のケースでログを無効にするにはどうすればよいですか?

4

1 に答える 1

0

コレクション単位で Mongoid のロギングを制御するクリーンな方法はないようです。ただし、目的のために、個々の呼び出しを識別できる場合は、レベルを上げることでログを一時的にオフにすることができます。これがあなたの目的に十分であることを願っています。

require 'test_helper'

def dont_log(temp_level = Logger::Severity::UNKNOWN)
  logger = Rails.logger
  old_level, logger.level = logger.level, temp_level
  yield
  logger.level = old_level
end

class LogDoTest < ActiveSupport::TestCase
  def setup
    LogDo.delete_all
    LogDont.delete_all
  end

  test "log do dont" do
    LogDo.create(text: 'Log me')
    dont_log{ LogDont.create(text: 'Dont log me') }
  end
end
于 2012-05-25T19:23:21.643 に答える