MongoDB logging all queries MongoDB logging all queries mongodb mongodb

MongoDB logging all queries


You can log all queries:

$ mongoMongoDB shell version: 2.4.9connecting to: test> use myDbswitched to db myDb> db.getProfilingLevel()0> db.setProfilingLevel(2){ "was" : 0, "slowms" : 1, "ok" : 1 }> db.getProfilingLevel()2> db.system.profile.find().pretty()

Source: http://docs.mongodb.org/manual/reference/method/db.setProfilingLevel/

db.setProfilingLevel(2) means "log all operations".


I ended up solving this by starting mongod like this (hammered and ugly, yeah... but works for development environment):

mongod --profile=1 --slowms=1 &

This enables profiling and sets the threshold for "slow queries" as 1ms, causing all queries to be logged as "slow queries" to the file:

/var/log/mongodb/mongodb.log

Now I get continuous log outputs using the command:

tail -f /var/log/mongodb/mongodb.log

An example log:

Mon Mar  4 15:02:55 [conn1] query dendro.quads query: { graph: "u:http://example.org/people" } ntoreturn:0 ntoskip:0 nscanned:6 keyUpdates:0 locks(micros) r:73163 nreturned:6 reslen:9884 88ms


Because its google first answer ...
For version 3

$ mongoMongoDB shell version: 3.0.2connecting to: test> use myDbswitched to db> db.setLogLevel(1)

http://docs.mongodb.org/manual/reference/method/db.setLogLevel/