MongoDB记录所有查询

15 浏览
0 Comments

MongoDB记录所有查询

这个问题非常基础又简单...如何在mongodb中记录所有查询,使其能在一个“tail”式的日志文件中查看?

我尝试了以下方法:

  • 设置profile级别
  • 设置slow ms参数开始
  • 使用-mongod选项

/var/log/mongodb/mongodb.log仍然只显示当前活跃连接的数量...

admin 更改状态以发布 2023年5月24日
0
0 Comments

我最终通过以下方式启动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

0
0 Comments

您可以记录所有查询:

$ 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) 表示“记录所有操作”。

0