Error/Spring Boot
[Spring Boot]쿼리 파라미터 로그 남기기, SQL 한줄 출력 해결
prao
2023. 7. 12. 10:55
반응형
에러 내용
1) 발생
2) 원인
구글링을 통해 여러 사람들이 말한 방법들을 다 해봤다. 우선 나는 스프링부트 2.7.~ 을 사용 중이다. 우선 쿼리파라미터는 아래의 라이브러리와 로깅 구문을 통해 해결할 수 있다.
스프링부트 2.x
- 외부 라이브러리 추가
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6'
- application.yml에 logging 구문 추가
logging:
level:
org.hibernate.SQL: debug
org.hibernate.type: trace
스프링부트 3.0 이상을 사용할 경우
- 외부 라이브러리 추가
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
- application.yml에 logging 구문 추가
logging:
level:
org.hibernate.SQL: debug
org.hibernate.orm.jdbc.bind: trace
나는 스프링부트 2.7.x 를 사용 중인데 위의 방법대로 해도 쿼리 파라미터는 보여지나, SQL 구문이 한줄로 출력되어 가독성이 떨어졌다. 그래서 계속 찾아보면서 블로그 포스팅을 보고 수정한 결과 원인을 찾았다.
기존의 application.yml에 jpa 설정 타입의 차이가 문제였다.
3) 해결
- (변경 전) application.yml
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/jpashop;
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create
properties:
format_sql: true
logging:
level:
org.hibernate.SQL: debug
org.hibernate.type: trace
- (변경 전) 출력
→ 한줄로 출력이 되어 가독성이 떨어진다.
- (변경 후) application.yml
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/jpashop;
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
logging:
level:
org.hibernate.SQL: debug
org.hibernate.type: trace
- (변경 후) 출력
해결 완료!
반응형