如何禁用控制台中的MongoDB日志消息?

我有这个小testing脚本:

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驱动中find这个选项,而且我试着用这些指令编辑/etc/mongod.conf (但是没有修复它):

 verbose = false diaglog = 0 

任何想法? 我不知道还有什么我可以尝试!

这个日志logging来自Ruby Mongo驱动程序。 默认的日志级别似乎是Logger::DEBUG 。 将其更改为更高的值以禁用debugging输出:

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

为了使驱动程序login到日志文件,而不是:

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

请注意,如果您使用的是Mongoid ODM ,那么您也可能需要在那里调整日志logging:

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