gpt4 book ai didi

java - 如何禁用 Spring Boot Hibernate "Listing entities"选项?

转载 作者:行者123 更新时间:2023-12-01 22:10:39 27 4
gpt4 key购买 nike

我们有一个 Spring Boot RESTful Web 应用程序。每当数据提交到端点时,日志就会完全充满表示提交过程中涉及的数据库实体的状态的数据。

查看日志我看到这个:

2019-11-01 10:50:44.686 DEBUG [https-jsse-nio-8443-exec-2] o.h.i.u.EntityPrinter [EntityPrinter.java:102] Listing entities:

然后涉及牵引的每个实体都会被打印出来......甚至是图像等的二进制数据。

我知道这是一个 DEBUG 语句,但是必须有一种方法可以处于 DEBUG 模式并且不会将所有无用的数据打印到日志中。我该如何做到这一点,如何关闭“列出实体”功能?

最佳答案

您是否在 DEBUG 日志级别模式下运行应用程序?

尝试在 application.yml 文件中将包 org.hibernate.internal.util 的日志级别设置为 INFO

logging:
level:
org.hibernate.internal.util: INFO

有问题的日志是由属于 org.hibernate.internal.util 包的 EntityPrinter 类 (source) 生成的,作为下面 重写实现的一部分>toString() 方法。

public void toString(Iterable<Map.Entry<EntityKey, Object>> entitiesByEntityKey) throws HibernateException {
if ( !LOG.isDebugEnabled() || !entitiesByEntityKey.iterator().hasNext() ) {
return;
}

LOG.debug( "Listing entities:" );
int i = 0;
for ( Map.Entry<EntityKey, Object> entityKeyAndEntity : entitiesByEntityKey ) {
if ( i++ > 20 ) {
LOG.debug( "More......" );
break;
}
LOG.debug( toString( entityKeyAndEntity.getKey().getEntityName(), entityKeyAndEntity.getValue() ) );
}
}

关于java - 如何禁用 Spring Boot Hibernate "Listing entities"选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58661583/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com