【发布时间】:2012-05-28 03:58:12
【问题描述】:
我正在使用 Mongoid 与 MongoDB 进行交互。在开发中,我通常喜欢查看 Mongo 正在做什么的日志。但是,有一种情况是我根本不想看到过多的冗余日志记录。在这种特定情况下如何禁用日志记录?
【问题讨论】:
-
我认为这可能很有趣:stackoverflow.com/a/30292413/1566187
我正在使用 Mongoid 与 MongoDB 进行交互。在开发中,我通常喜欢查看 Mongo 正在做什么的日志。但是,有一种情况是我根本不想看到过多的冗余日志记录。在这种特定情况下如何禁用日志记录?
【问题讨论】:
似乎没有任何干净的方法可以在每个集合的基础上控制 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
【讨论】: