使用Spring Boot记录MongoDB查询

时间:2016-08-30 01:05:30

标签: mongodb spring-boot

是否可以在Spring Boot应用程序中记录所有MongoDB查询?我试过这个:

logging.level.org.springframework.data.document.mongodb=INFO
log4j.category.org.springframework.data.document.mongodb=INFO

但它没有用。

3 个答案:

答案 0 :(得分:10)

此方法有点长,但它解决了更多。我们将使用名为 Spring Boot Admin Server 的工具。

  1. 首先,您需要包含一些依赖项

    <!--Dependency for registering your app as a Spring Boot Admin Server-->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-server</artifactId>
        <version>1.3.3</version>
    </dependency>
    
    <!--Provide a nice looking ui-->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-server-ui</artifactId>
        <version>1.3.3</version>
    </dependency>
    
    <!--Dependency for registering your app as a Spring Boot Admin Client-->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-client</artifactId>
        <version>1.3.0</version>
    </dependency>
    <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-core</artifactId>
    </dependency>
    
  2. 使用注释@EnableAdminServer使您的应用成为Spring Boot管理服务器。

    @SpringBootApplication
    @EnableAdminServer
    public class Application {
       public static void main(String[] args) {
          // ... your code as before ...
       }
    }
    
  3. application.properties添加以下内容:

    将您的应用注册到仍然是您应用的Spring Boot管理服务器

    spring.boot.admin.url=http://localhost:8031
    

    指示Spring Boot Admin Server在哪里找到客户端

    spring.boot.admin.client.service-url=http://localhost:8031
    spring.boot.admin.client.management-url=http://localhost:8031
    spring.boot.admin.client.health-url=http://localhost:8031/health
    
  4. logback.xml中添加以下行<jmxConfigurator/>。这允许通过JMX配置logback。更多信息here

  5. ... 瞧瞧你已经完成了。现在,您可以在运行时更改任何记录器的调试级别。

    我。只需访问Spring Boot Admin Server的URL(在本例中为http:/localhost:8031)。

    II。注册的应用程序(客户端)列表将显示在主页上。

    III。针对已注册的客户端点击Details,这将转到另一个页面。

    IV。单击Logging选项卡,其中将列出应用程序中注册的所有记录器。

    诉您可以更改日志级别,它将在运行时更改您的日志记录级别。以下是您期望的片段

    Change logging levels at runtime

    要回答您的问题,如果您想查看MongoDB查询,只需查看MongoTemplate并将日志记录级别更改为DEBUG

    对于Spring Boot Admin的 2。*。* 版本,请使用以下配置:

    spring.boot.admin.client.url=http://localhost:8031
    

答案 1 :(得分:8)

试试这个:

只需将此行添加到您的application.propertiese文件中,并在运行任何MongoRepository查询后检查控制台输出。

logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG

日志将是:

  

2018-11-26 19:23:16.574 DEBUG 15668 --- [nio-8081-exec-2]
  o.s.data.mongodb.core.MongoTemplate:使用查询查找:{   “status”:“ACTIVE”,“item._id”:{“$ oid”:   “5bfbcde45ac3366ad70cdb9f”}}字段:文档{{}}

答案 2 :(得分:5)

如果使用spring boot reactive mongodb,请设置client.on('connect',function(){})