본문 바로가기
JPA

쿼리 로그 세팅

by 박성민 2021. 4. 28.

모든 로그 출력은 가급적 로거를 통해 남겨야 합니다.

  • spring.jpa.properties.hibernate.show_sql: true
    => 쿼리를 System.out으로 출력한다. (권장되지 않음)

  • logging.level.org.hibernate.SQL: debug

  • spring.jpa.properties.hibernate.format_sql: true
    => 이 2개를 사용하면 쿼리를 로거를 통해 보기 좋게 출력한다.

  • logging.level.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:
#        show_sql: true
        format_sql: true

logging:
  level:
    org.hibernate.SQL: debug
    org.hibernate.type: trace

로그 확인

2021-04-28 16:50:37.388 DEBUG 26752 --- [           main] org.hibernate.SQL                        : 
    insert 
    into
        member
        (username, id) 
    values
        (?, ?)
2021-04-28 16:50:37.393 TRACE 26752 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [VARCHAR] - [memberA]
2021-04-28 16:50:37.394 TRACE 26752 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [2] as [BIGINT] - [1]

추가 기능

스프링 부트에서 외부 라이브러리인 p6spy를 사용하면 쿼리 파라미터가 포함된 쿼리를 확인할 수 있습니다.
개발 단계에서는 편하게 사용해도 되지만 운영 환경에서는 성능 저하의 원인이 될 수 도 있으니 성능 테스트를 하고 사용하는 것이 좋습니다.

pom.xml

<dependency>
    <groupId>com.github.gavlyukovskiy</groupId>
    <artifactId>p6spy-spring-boot-starter</artifactId>
    <version>1.7.1</version>
</dependency>

로그 확인

2021-04-28 16:53:49.331  INFO 14576 --- [           main] p6spy                                    : #1619596429331 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop
insert into member (username, id) values (?, ?)
insert into member (username, id) values ('memberA', 1);
2021-04-28 16:53:49.331  INFO 14576 --- [           main] p6spy                                    : #1619596429331 | took 0ms | commit | connection 3| url jdbc:h2:tcp://localhost/~/jpashop

댓글