반응형
logging.level.jdbc 로 설정하는 방법은 Mybatis에 설정할때 사용할 수 있는 것이다.
JPA로 되어있는 프로젝트에서는 다른 방법으로 로깅해야 한다.
하나는 application.properties에 다음의 두 설정을 하는 방법이다
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
이렇게 할 경우 쿼리가 생성되면서 화면에 보여진다. 다만 바인딩 값이 ?로 표기된다.
format_sql 을 false로 지정할 경우 쿼리가 한줄로 나와 가독성의 떨어질 수 있으니 주의.
?로 들어가는 파라미터에 실제 값이 적용되는 쿼리를 보고 싶다면 다음의 옵션을 추가한다
logging.level.org.hibernate.type=trace
이렇게하면 화면에 다음처럼 보이는데, 보기가 불편하다
Hibernate:
select
a0_.store_cd as store_cd1_0_,
a0_.yyyymmdd as yyyymmdd2_0_,
a0_.cnt as cnt3_0_,
from
[테이블명] a0_
where
a0_.yyyymmdd=?
and a0_.store_cd=?
2020-11-27 21:36:56.257 TRACE 44449 --- [ main] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [DATE] - [2020-10-27]
2020-11-27 21:36:56.258 TRACE 44449 --- [ main] o.h.type.descriptor.sql.BasicBinder : binding parameter [2] as [VARCHAR] - [1001]
파라미터가 적용된 쿼리문을 보려면 다음의 플러그인을 사용하는게 좋다.
# p6spy 설정
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.8'
github 주소:
https://github.com/gavlyukovskiy/spring-boot-data-source-decorator
application.properties 에 다음으로 설정이 가능하다.(기본설정이기 때문에 설정을 생략해도 된다)
decorator.datasource.p6spy.enable-logging=true
이렇게 할경우 쿼리가 다음과 같이 2개가 표시된다.
insert into [테이블명] ([컬럼명...]) values (?, ?, ?, ?, ?)
insert into [테이블명] ([컬럼명...]) values (52, 0, 3000, '1234', '2020-02-21T00:00:00.000+0900');
decorator.datasource.p6spy.enable-logging 를 false로 두면 로깅이 되지 않는다
그래서 운영환경에서는 false로 설정하길 권장한다.
그 외 필요한 옵션은 github에 들어가면 확인할 수 있다.
끝.
반응형
'공부 > 프로그래밍' 카테고리의 다른 글
[springboot] @SpringBootTest에서 RestTemplate로 localhost 테스트 시 Connection refused (0) | 2020.12.15 |
---|---|
[react + next] 구글 애널리틱스 적용하기(gtag) (0) | 2020.12.13 |
[react] next.js 프로젝트, npm으로 설정하기 (0) | 2020.11.26 |
[eslint, react] eslint-disable-next-line 에러 표기 뜰 때 (0) | 2020.11.22 |
[webpack] Cannot read property 'tap' of undefined 에러 (0) | 2020.11.22 |
댓글