Fab*_*ner 7 mongodb spring-boot
是否可以在Spring Boot应用程序中记录所有MongoDB查询?我试过这个:
logging.level.org.springframework.data.document.mongodb=INFO
log4j.category.org.springframework.data.document.mongodb=INFO
Run Code Online (Sandbox Code Playgroud)
但它没有用.
Moj*_*bye 13
试试这个:
只需将此行添加到application.propertiese文件中,并在运行任何org.springframework.data.mongodb.core.MongoTemplate
查询后检查控制台输出.
logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG
Run Code Online (Sandbox Code Playgroud)
日志将是:
2018-11-26 19:23:16.574 DEBUG 15668 --- [nio-8081-exec-2]
osdata.mongodb.core.MongoTemplate:find using query:{"status":"ACTIVE","item._id" :{"$ oid":"5bfbcde45ac3366ad70cdb9f"}}字段:文档{{}}
Kih*_*ats 11
这种方法有点长,但它解决了更多.我们将使用一个名为Spring Boot Admin Server的工具.
首先,您需要包含一些依赖项
<!--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>
Run Code Online (Sandbox Code Playgroud)使用注释使您的应用成为Spring Boot Admin Server @EnableAdminServer
.
@SpringBootApplication
@EnableAdminServer
public class Application {
public static void main(String[] args) {
// ... your code as before ...
}
}
Run Code Online (Sandbox Code Playgroud)在您application.properties
添加以下内容:
将您的应用程序注册到Spring Boot Admin Server,它仍然是您的应用程序
spring.boot.admin.url=http://localhost:8031
Run Code Online (Sandbox Code Playgroud)
指示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
Run Code Online (Sandbox Code Playgroud)在您logback.xml
刚刚添加以下行<jmxConfigurator/>
.这允许通过JMX配置logback.更多信息在这里
...... 瞧,你已经完成了.现在,您可以在运行时更改任何记录器的调试级别.
一世.只需访问Spring Boot Admin Server的URL(在我们的例子中http:/localhost:8031
)().
II.注册的应用程序(客户端)列表将显示在主页上.
III.单击Details
已注册的客户端,将转到另一个页面.
IV.单击Logging
选项卡,其中将列出应用程序中注册的所有记录器.
v.您可以更改日志级别,它将在运行时更改日志记录级别.这是你期望的片段
要回答您的问题,如果您想查看MongoDB查询,只需查找MongoTemplate
并更改日志记录级别即可DEBUG
.
对于Spring Boot Admin的版本2.*.*,请使用以下配置:
spring.boot.admin.client.url=http://localhost:8031
Run Code Online (Sandbox Code Playgroud)
如果使用spring boot react mongodb,请设置 org.springframework.data.mongodb.core.ReactiveMongoTemplate=DEBUG
小智 5
我是 Spring 框架的新手,但我将这两个条目添加到应用程序配置文件中
logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG
logging.level.org.springframework.data.mongodb.core.ReactiveMongoTemplate=DEBUG
Run Code Online (Sandbox Code Playgroud)
没有查询记录到控制台。
之后,我为应用程序启用了 DEBUG 级别,并在日志输出中查找查询的日志条目。
2022-09-15 08:55:26.945 DEBUG 4388 --- [ main]
org.mongodb.driver.protocol.command : Sending command '{ "find" : "movies",
"filter" : { "countries" : { "$all" : ["Russia", "Japan"] } },
Run Code Online (Sandbox Code Playgroud)
因此,我将应用程序日志级别反转回 INFO,并为 org.mongodb.driver.protocol.command 命名空间启用 DEBUG 级别。
logging.level.org.mongodb.driver.protocol.command=DEBUG
Run Code Online (Sandbox Code Playgroud)
希望这对某人有帮助。
归档时间: |
|
查看次数: |
11021 次 |
最近记录: |