2015-05-17 16 views
36

mam ten mały skrypt testowy:Jak mogę wyłączyć komunikaty dziennika MongoDB w konsoli?

require 'mongo' 

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

Jest to wyjście konsoli:

$ 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 

Chcę wyłączyć te komunikaty dziennika, nie ma brudne standardowe wyjście. Nie znaleziono żadnych opcji do tego w sterowniku ruby, a także Próbowałem edytować /etc/mongod.conf z tymi dyrektywami (ale nie naprawić):

verbose = false 
diaglog = 0 

jakiś pomysł? Nie wiem, co jeszcze mogę spróbować!

Odpowiedz

81

To rejestrowanie pochodzi ze sterownika Ruby Mongo. Domyślnym poziomem rejestrowania jest Logger::DEBUG. Zmień go do czegoś wyższego, aby wyłączyć wyjście debugowania:

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

Aby uczynić dziennika sterownika do pliku dziennika Zamiast:

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

pamiętać, że jeśli używasz Mongoid ODM, to może chcieć dostosować rejestrowanie tam:

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

dla Rails + Mongoid w application.rb:

config.mongoid.logger = Logger.new(Rails.root + '/log/mongoid.log', :warn) 
+0

Dziękujemy! Dziękuję Ci! Dziękuję Ci! Nie znalazłem tego w dokumentacji kierowcy, uratowałeś mi kilka godzin desperacji. – raulmarcosl

+1

Nie spowodowało to wyłączenia zapytań z rejestrowania w mojej konsoli. Dodanie Mongoid.logger.level = Logger :: INFO zdziałało. – Ekkstein

+0

To nie działało dla mnie na Mongoid 6. To działało, gdy umieściłem go w aplikacji.rb Mongoid :: Config.logger = Logger.new ("# {Rails.root} /log/mongo.log ") – Prabhakar

1

Aby wyłączyć wyjście debugowania dla Ruby Mongo sterownikiem (mongoid) możemy dodać konkretny plik środowiskową jako

config.mongoid.logger.level = Logger::INFO

Powiązane problemy