[SPRING] 스프링 부트와 로그백을 사용하여 SQL을 콘솔에 로깅하는 것을 피할 수 없다.
SPRING스프링 부트와 로그백을 사용하여 SQL을 콘솔에 로깅하는 것을 피할 수 없다.
My Spring Boot 애플리케이션은 다음과 같이 Logback으로 Hibernate의 특정 로깅을 구성 했음에도 불구하고 콘솔에서 Hibernate 쿼리를 계속 표시합니다.
<appender name="HIBERNATE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGDIR}/hibernate.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOGDIR}/hibernate.log.%d</fileNamePattern>
</rollingPolicy>
</appender>
<logger name="org.hibernate" additivity="false">
<appender-ref ref="HIBERNATE"/>
</logger>
<logger name="org.hibernate.SQL" additivity="false">
<appender-ref ref="HIBERNATE"/>
</logger>
<logger name="org.hibernate.type.descriptor.sql" additivity="false">
<appender-ref ref="HIBERNATE"/>
</logger>
쿼리를 포함한 Hibernate의 로그를 hibernate.log 파일에 보낸다. 그러나 나는 또한 콘솔에서 쿼리를 피하기를 원할 것이다. 나는이 컨피규레이션을 가지고 있어야한다고 생각한다.
내가 뭘 놓치고 있니?
해결법
-
==============================
1.hibernate.show_sql을 true로 설정하면, Hibernate는 단순히 SQL 문을 콘솔에 출력 할 것이다 (org.hibernate.SQL 아래에서의 로깅과 혼동하지 말라). SqlStatementLogger는 SQL 문을 로깅하는 역할을하며 logStatement는 다음과 같습니다.
hibernate.show_sql을 true로 설정하면, Hibernate는 단순히 SQL 문을 콘솔에 출력 할 것이다 (org.hibernate.SQL 아래에서의 로깅과 혼동하지 말라). SqlStatementLogger는 SQL 문을 로깅하는 역할을하며 logStatement는 다음과 같습니다.
public void logStatement(String statement, Formatter formatter) { if ( format ) { if ( logToStdout || LOG.isDebugEnabled() ) { statement = formatter.format( statement ); } } LOG.debug( statement ); if ( logToStdout ) { System.out.println( "Hibernate: " + statement ); } }
따라서, 콘솔에서 질의를보고 싶지 않다면, hibernate.show_sql을 false로 설정하거나 그냥 제거함으로써 hibernate.show_sql을 비활성화하십시오. Spring Boot에서 application.properties에 다음을 추가합니다.
spring.jpa.show-sql=false
-
==============================
2.나는 방금 org.hibernate.SQL이 Spring Boot JUnit 테스트에서 디버깅을 일으킬 수있는 또 다른 설정이 있음을 알았고 공유하고 싶었다.
나는 방금 org.hibernate.SQL이 Spring Boot JUnit 테스트에서 디버깅을 일으킬 수있는 또 다른 설정이 있음을 알았고 공유하고 싶었다.
spring.jpa.show-sql=false
과
spring.jpa.properties.hibernate.show_sql=false
...
설정 한 경우
debug=true
Spring 애플리케이션 * .properties 파일에서!
이 값을 true로 설정하면 show-sql 설정이 무시되고 true로 설정됩니다.
Brgds
-
==============================
3.기본적으로 2 개의 속성을 false로 설정해야합니다.
기본적으로 2 개의 속성을 false로 설정해야합니다.
Spring 부트를 사용하고 있다면 아래의 Application.properties에서 설정하십시오.
spring.jpa.properties.hibernate.generate_statistics=false spring.jpa.properties.hibernate.show_sql=false
그리고 만약 당신이 hibernate.cfg.xml을 사용하고 있다면, 다음과 같이 설정하십시오
<property name="hibernate.generate_statistics">false</property> <property name="show_sql">false</property>
from https://stackoverflow.com/questions/36496178/cant-avoid-hibernate-logging-sql-to-console-with-spring-boot-and-logback by cc-by-sa and MIT license