Query & Transaction Log

해당 포스팅에서는 JDBC와 JPA에서 쿼리 및 트랜잭션 로그를 확인하기 위한 설정 방법을 다룹니다.

Query Log

logging.level.org.springframework.jdbc

  • Jdbc 만의 SQL 로그 레벨을 지정합니다. DEFAULT : DEBUG

logging.level.org.hibernate.SQL

  • Hibernate 만의 SQL 로그 레벨을 지정합니다. DEFAULT : DEBUG

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

  • Hibernate SQL 에 바인딩되는 파라미터를 확인할 수 있습니다. DEFAULT : TRACE

logging.level.org.springframework.jdbc 와 logging.level.org.hibernate.SQL 를 합친것이 logging.level.sql 입니다. 즉, Hibernate, Jdbc 를 모두 포함한 SQL 로그 레벨을 지정할 수 있습니다.

Transaction Log

logging.level.org.springframework.transaction.interceptor

  • Transaction 의 시작(Getting Transaction) 과, 끝(Completing Transaction) 로그를 확인할 수 있습니다. DEFAULT : TRACE
  • 하지만, Transaction 이 Commit 되는지 Rollback 되는지 확인할 수 없습니다. 해당 로그는 각 데이터 접근 기술이 사용하는 TransactionManager 의 로그 레벨을 지정해주어야 합니다.

logging.level.org.springframework.jdbc.datasource.DataSourceTransactionManager

  • Jdbc 가 사용하는 TransactionManager 로그 레벨을 지정합니다. DEFAULT : DEBUG
  • JDBC 기반의 Transaction 이 Commit 되는지 Rollback 되는지 확인 가능합니다.

logging.level.org.springframework.orm.jpa.JpaTransactionManager

  • Jpa 가 사용하는 TransactionManager 로그 레벨을 지정합니다. DEFAULT : DEBUG
  • JPA 기반의 Transaction 이 Commit 되는지 Rollback 되는지 확인 가능합니다.
logging:  
  level:  
    org:  
      springframework.transaction.interceptor: TRACE                         
      springframework.jdbc.datasource.DataSourceTransactionManager: DEBUG    
      springframework.orm.jpa.JpaTransactionManager: DEBUG                   
  
      springframework.jdbc: DEBUG                                            
      hibernate.SQL: DEBUG                                                   
      hibernate.orm.jdbc.bind: TRACE