如何使用 mongodb 将所有查询记录在 java 应用程序的日志文件中?
我有一个 java 应用程序,它使用 morphia 与 mongodb 一起使用。
我想将发送到 mongodb 的所有查询记录在一个文件中,我可以分析它们以提高性能。但我找不到记录它们的方法。
我知道 mongodb 可以将查询记录在 system.profile
集合中,但我仍然想要一个日志文件。
怎么做呢?
I have a java application which use morphia to work with mongodb.
I want to log all the queries sent to mongodb in a file, which I can analyze them to improve the performance. But I don't find a way to log them.
I know mongodb can log the queries in system.profile
collection, but I still want a log file.
How to do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你使用SLF4J还是Logback/Log4J?将 Morphias 的 SLF4JExtension 添加到您的 CLASSPATH。
然后只需启用
com.google.code.morphia
记录器并将其记录到您想要的任何位置。Do you use SLF4J or Logback/Log4J? Add Morphias' SLF4JExtension to your CLASSPATH.
Then simply enable
com.google.code.morphia
logger and log it wherever you want.我在 Java MongoDB 驱动程序(版本 3.9.1)上使用 Morphia(版本 1.3.2),并且我能够通过设置 org.mongodb.morphia 来启用实际查询日志记录(使用 Log4j2) code> 记录器级别为
trace
。也就是说,在我的log4j2.xml
中:I'm using Morphia (version 1.3.2) on top of Java MongoDB driver (version 3.9.1), and I was able to enable the actual query logging (using Log4j2) by setting
org.mongodb.morphia
logger level totrace
. That is, in mylog4j2.xml
:使用
Wildfly
部署,我通过将以下内容添加到stadalone.xml
来启用 Morphia 日志记录:Using
Wildfly
deployment, I managed to enable Morphia logging by adding the following to thestadalone.xml
: