Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I disable MongoDB log messages in console?

I have this little test script:

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

An this is the console output:

$ 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 

I want to disable those log messages, I don't want a dirty STDOUT. I didn't found any option for this in the ruby driver, and also I've tried to edit /etc/mongod.conf with these directives (but it didn't fix it):

verbose = false diaglog = 0 

Any idea? I don't know what else I can try!

like image 265
raulmarcosl Avatar asked May 17 '15 21:05

raulmarcosl


People also ask

Where is MongoDB log stored?

MongoDB logs can be found in the MongoDB log files at /var/log/mongodb/mongodb. log. If you can't find the log files from this location, you can check the mongodb.

What is MongoDB log?

As part of normal operation, MongoDB maintains a running log of events, including entries such as incoming connections, commands run, and issues encountered. Generally, log messages are useful for diagnosing issues, monitoring your deployment, and tuning performance.

What is the name of the logging collection used for updates MongoDB?

Default, MongoDB creates the log file at this path /var/log/mongodb/mongodb.


1 Answers

This logging is coming from the Ruby Mongo driver. The default logging level seems to be Logger::DEBUG. Change it to something higher to disable the debug output:

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

To make the driver log to a logfile instead:

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

Note that if you're using the Mongoid ODM, then you may want to adjust logging there too:

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

For 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 
like image 143
Casper Avatar answered Oct 09 '22 09:10

Casper