MongoDB记录所有查询
MongoDB记录所有查询
这个问题非常基础又简单...如何在mongodb中记录所有查询,使其能在一个“tail”式的日志文件中查看?
我尝试了以下方法:
- 设置profile级别
- 设置slow ms参数开始
- 使用-mongod选项
/var/log/mongodb/mongodb.log仍然只显示当前活跃连接的数量...
admin 更改状态以发布 2023年5月24日
我最终通过以下方式启动mongod来解决这个问题(虽然很丑陋,但适用于开发环境):
mongod --profile=1 --slowms=1 &
这将启用分析和将“慢查询”的阈值设置为1毫秒,导致所有查询都被记录为“慢查询”到文件中:
/var/log/mongodb/mongodb.log
现在我使用命令可以获得连续的日志输出:
tail -f /var/log/mongodb/mongodb.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
您可以记录所有查询:
$ mongo MongoDB shell version: 2.4.9 connecting to: test > use myDb switched to db myDb > db.getProfilingLevel() 0 > db.setProfilingLevel(2) { "was" : 0, "slowms" : 1, "ok" : 1 } > db.getProfilingLevel() 2 > db.system.profile.find().pretty()
来源:http://docs.mongodb.org/manual/reference/method/db.setProfilingLevel/
db.setProfilingLevel(2)
表示“记录所有操作”。