J'ai ce petit script de test:
require 'mongo'
mongo_client = Mongo::Client.new(['127.0.0.1:27017'], :database => 'test')
mongo_client[:collection].insert_one({a: 1})
Voici la sortie de la console:
$ 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
Je veux désactiver ces messages de log, je ne veux pas d'un STDOUT sale. Je n'ai trouvé aucune option pour cela dans le pilote Ruby, et j'ai également essayé de modifier /etc/mongod.conf
avec ces directives (mais cela ne l'a pas corrigé):
verbose = false
diaglog = 0
Une idée? Je ne sais pas quoi d'autre je peux essayer!
Cette journalisation provient du pilote Ruby Mongo. Le niveau de journalisation par défaut semble être Logger::DEBUG
. Remplacez-le par quelque chose de plus élevé pour désactiver la sortie de débogage:
Mongo::Logger.logger.level = Logger::FATAL
Pour que le pilote se connecte à un fichier journal à la place:
Mongo::Logger.logger = Logger.new('mongo.log')
Mongo::Logger.logger.level = Logger::INFO
Notez que si vous utilisez l'ODM mongoïde , vous souhaiterez peut-être également ajuster la journalisation:
Mongoid.logger = Logger.new('mongoid.log')
Mongoid.logger.level = Logger::INFO
Pour Rails + Mongoid in application.rb
:
config.mongoid.logger = Logger.new(Rails.root + '/log/mongoid.log', :warn)
# ...or change the logging level without a new file destination
config.mongoid.logger.level = Logger::INFO
Pour désactiver la sortie de débogage pour Ruby Mongo Driver (mongoid), nous pouvons lui ajouter un fichier d'environnement spécifique comme
config.mongoid.logger.level = Logger::INFO