簡體   English   中英

如何禁用 Spring 引導 Hibernate “列出實體”選項?

[英]How to disable Spring Boot Hibernate “Listing entities” option?

我們有一個 Spring 引導 RESTful web 應用程序。 每當將數據提交到端點時,日志中都會充滿代表提交過程中涉及的數據庫實體的 state 的數據。

查看日志我看到了這個:

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文件中將 package org.hibernate.internal.util的日志級別設置為INFO

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

有問題的日志由 class EntityPrinter ( source ) 生成,屬於 package org.hibernate.internal.util (String 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() ) );
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM