Подтвердить что ты не робот

Как отключить сообщения журнала MongoDB в консоли?

У меня этот небольшой тест script:

require 'mongo'

mongo_client = Mongo::Client.new(['127.0.0.1:27017'], :database => 'test')
mongo_client[:collection].insert_one({a: 1})

Это консольный вывод:

$ ruby test.rb
D, [2015-05-17T21:12:05.504986 #25257] DEBUG -- : MONGODB | Adding 127.0.0.1:27017 to the cluster. | runtime: 0.0212ms
D, [2015-05-17T21:12:05.531238 #25257] DEBUG -- : MONGODB | COMMAND | namespace=admin.$cmd selector={:ismaster=>1} flags=[] limit=-1 skip=0 project=nil | runtime: 24.5481ms
D, [2015-05-17T21:12:05.554532 #25257] DEBUG -- : MONGODB | COMMAND | namespace=test.$cmd selector={:insert=>"collection", :documents=>[{:a=>1, :_id=><BSON::ObjectId:0x21935660 data=5558e80553657262a9000000>}], :writeConcern=>{:w=>1}, :ordered=>true} flags=[] limit=-1 skip=0 project=nil | runtime: 21.1718ms

Я хочу отключить эти сообщения журнала, мне не нужен грязный STDOUT. Я не нашел для этого варианта в драйвере ruby, а также пытался отредактировать /etc/mongod.conf с этими директивами (но это не исправило):

verbose = false
diaglog = 0

Любая идея? Я не знаю, что еще я могу попробовать!

4b9b3361

Ответ 1

Этот журнал поступает от драйвера Ruby Mongo. Уровень ведения журнала по умолчанию выглядит Logger::DEBUG. Измените его на что-то большее, чтобы отключить вывод отладки:

Mongo::Logger.logger.level = Logger::FATAL

Чтобы сделать журнал драйвера в файле журнала, вместо этого:

Mongo::Logger.logger       = Logger.new('mongo.log')
Mongo::Logger.logger.level = Logger::INFO

Обратите внимание, что если вы используете Mongoid ODM, вы можете также отрегулировать его:

Mongoid.logger       = Logger.new('mongoid.log')
Mongoid.logger.level = Logger::INFO