如何使用 mongodb 将所有查询记录在 java 应用程序的日志文件中?

问题描述 投票:0回答:3

我有一个 java 应用程序,它使用 morphia 与 mongodb 一起工作。

我想将发送到 mongodb 的所有查询记录在一个文件中,我可以分析它们以提高性能。但我找不到记录它们的方法。

我知道 mongodb 可以将查询记录在

system.profile
集合中,但我仍然想要一个日志文件。

如何做到这一点?

mongodb logging morphia
3个回答
5
投票

你使用SLF4J还是Logback/Log4J?将 Morphias 的 SLF4JExtension 添加到您的 CLASSPATH。

然后只需启用

com.google.code.morphia
记录器并在任何您想要的地方记录它。


2
投票

我在 Java MongoDB 驱动程序(版本 3.9.1)之上使用 Morphia(版本 1.3.2),并且我能够通过将

org.mongodb.morphia
记录器级别设置为
trace
来启用实际查询日志记录(使用 Log4j2) 。也就是说,在我的
log4j2.xml

<Loggers>
    ...
    <Logger name="org.mongodb.morphia" level="trace" />
    ...
</Loggers>

0
投票

使用

Wildfly
部署,我通过将以下内容添加到
stadalone.xml
来成功启用 Morphia 日志记录:

<server xmlns="urn:jboss:domain:15.0">
  <profile>
    <subsystem xmlns="urn:jboss:domain:logging:8.0">
      <logger category="org.mongodb.morphia" use-parent-handlers="true">
        <level name="TRACE"/>
        <handlers>
          <handler name="FILE"/>
        </handlers>
      </logger>
    </subsystem>
  </profile>
</server>
© www.soinside.com 2019 - 2024. All rights reserved.