Java Spring Data Mongodb:如何转储通过QueryDsl生成的原始查询/命令?

Java Spring Data Mongodb:如何转储通过QueryDsl生成的原始查询/命令?,java,mongodb,spring-data,spring-data-mongodb,querydsl,Java,Mongodb,Spring Data,Spring Data Mongodb,Querydsl,我正在使用谓词执行查询 findAll(predicate, pageable) 有没有办法转储实际执行的原始查询/命令 我也看了这个问题的答案,但它对我不起作用。。 --更新-- 通过添加logging.level.org.mongodb.driver=DEBUG,我成功地实现了日志记录 在application.properties中(不是log4j.properties) 但是,我仍然看不到正在执行的原始查询: 2016-03-23 21:50:56调试查询:56-查询完成 2016-

我正在使用谓词执行查询

findAll(predicate, pageable)
有没有办法转储实际执行的原始查询/命令

我也看了这个问题的答案,但它对我不起作用。。

--更新-- 通过添加logging.level.org.mongodb.driver=DEBUG,我成功地实现了日志记录 在application.properties中(不是log4j.properties)

但是,我仍然看不到正在执行的原始查询:

2016-03-23 21:50:56调试查询:56-查询完成
2016-03-23 21:50:56调试查询:56-在连接[connectionId{localValue:4,serverValue:42631}]到服务器ds046785.mongolab.com:39186

时发送命名空间testdb.reservation的查询,通过在mongo shell中使用以下命令设置配置文件值来启用探查器:

db.setProfilingLevel(2)
可以使用以下命令查看探查器的输出:

db.system.profile.find( { millis : { $gt : 100 } } )

此命令显示所有超过100毫秒的操作

在MongoDB端,您可以使用配置级别设置为
2
的来记录实例接收的所有查询和命令。最终,mongo java驱动程序负责发送查询,因此,您仍然可以将
org.mongodb
日志级别设置为
DEBUG
,并查看发布的查询我已经在我的log4j.properties中添加了这一行:log4j.logger.org.mongodb.driver=DEBUG,但仍然没有任何日志。您可能希望将日志配置包括在日志中,并进行一些测试,以确保它至少正确地配置为日志其他组成部分。最终,正如前面提到的那样,所有这些都必须通过驱动程序,因此在那里记录日志将是最有效的选择。我建议您在问题中包含一些配置问题,以便能够解决。我已经运行了命令db.setProfilingLevel(2),然后我对数据库运行了查询,但是db.system.profile.find({millis:{$gt:0}})不会返回我正在查找的查询是的,这里也是一样,最好是清理配置文件并单独运行“db.system.profile.find()”。您可以像这样清理配置文件:“db.setProfilingLevel(0);db.system.profile.drop();db.setProfilingLevel(2);'