본문 바로가기
개발/JPA

[JPA] Query Log 설정하기

by 코딩하는 흰둥이 2024. 11. 17.
applicarion.properties
# Query 를 콘솔에 출력
spring.jpa.show-sql=true

# Hibernate에서 출력하는 Query를 보기 좋게 출력
spring.jpa.properties.hibernate.format_sql=true

# Hibernate에서 Query 를 콘솔에 출력
spring.jpa.properties.hibernate.show_sql=true

# Hibernate에서 Query 의 중요 부분을 하이라이트 한다
spring.jpa.properties.hibernate.highlight_sql=true

# Hibernate가 Query를 debug 수준 출력
logging.level.org.hibernate.SQL=debug

# Hibernate가 Query 에서 parameta 를 TRACE 수준 출력
logging.level.org.hibernate.orm.jdbc.bind=TRACE

# Hibernate에서 Query 에 주석을 추가한다
spring.jpa.properties.hibernate.use_sql_comment=true

 

 

 

아무 설정을 하지 않았을 때는 Query 실행 시 log 에 아무것도 출력되지 않는다

하나씩 설정해가면서 어떻게 바뀌는지 확인해 보겠다

 

spring.jpa.show-sql=true

 

spring.jpa.show-sql=true 적용

Spring Data JPA에서 Query log를 출력해 준다

Query 가 출력되고 있지만 한 줄로 나오고 있어서 가독성이 좋지 않다

 

 

 

 

 

spring.jpa.properties.hibernate.format_sql=true

 

 

spring.jpa.properties.hibernate.format_sql=true 적용

format_sql 로 인하여 보기 좋게 정렬되어 나오지만

parameta 값이 나오지 않아서 사용자가 입력한 데이터가

정상적으로 조회되고 있는지 확인이 안 된다

 

spring.jpa.show-sql=true 또는 spring.jpa.properties.hibernate.show_sql=true같이 사용해야 한다

 

 

 

 

spring.jpa.properties.hibernate.show_sql=true

 

spring.jpa.properties.hibernate.show_sql=true 적용

처음에 적용하였던 

spring.jpa.show-sql=true 와 log 가 같다

차이로는 

Hibernate 자체에서 Query 출력을 활성화시킨다고 한다

 

 

 

 

 

spring.jpa.properties.hibernate.highlight_sql=true

 

spring.jpa.properties.hibernate.highlight_sql=true 적용

중요 부분에 하이라이트를 해준다

가독성이 더 좋아졌다

 

 

 

 

logging.level.org.hibernate.SQL=debug

 

logging.level.org.hibernate.SQL=debug 적용

debug log 와 hibernate log 둘 다 출력되었다

Query 가 두 번 실행된 것인지 debug log 만 출력된 것인지 확인할 수 없으니 

다음 설정을 추가하여 확인해 보자

 

 

 

 

 

logging.level.org.hibernate.orm.jdbc.bind=TRACE

 

logging.level.org.hibernate.orm.jdbc.bind=TRACE 적용

몇 번째 parameta 에 binding 했는지 값과 함께 출력된다

 

binding 수를 보니 Query 가 한 번만 실행된 것을 확인할 수 있다

 

 

 

 

 

 

spring.jpa.properties.hibernate.use_sql_comment=true

 

spring.jpa.properties.hibernate.use_sql_comment=true 을 적용하고

Query 를 실행하면 log 에 자동으로 주석이 생긴다는데

출력이 되지 않아 TEST 를 못하였다

 

 

 

 

 

 


 

중복이 되는 첫 번째 설정을 제외하고는 모두 설정하여 진행하였다

 

 

 

 

 


log4j 만 생각하고 log4j2 를 설치해서 삽질하다 보니

JPA 에서는 application.properties 에 설정만으로도 동작을 하더라...

 

 

 

'개발 > JPA' 카테고리의 다른 글

[JPA] @OneToOne 사용하기  (1) 2024.11.16
[JPA] @OneToMany , @ManyToOne 사용하기  (1) 2024.11.15
[JPA] @GeneratedValue 사용하기  (0) 2024.11.14
[JPA] Entity 설정하기  (0) 2024.11.13
[JPA] DELETE 하기(Delete , DeleteById , DeleteAll)  (0) 2024.11.12

댓글