HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤩
개발
/
Spring Data
Spring Data
/
🧣
JPA(Java Persistence API)
/
Log4jdbc

Log4jdbc

[ Blog ] SpringBoot에 log4jdbc 사용하기
 

sql 쿼리 실행 시 어떤 Connection Pool 을 사용하고 있는지 로깅하는 방법

  1. 프록시 패턴을 사용해 Connection 객체를 래핑 & 로깅 로직을 추가하기
    1. class DataSourceRouting(writeSource: DataSource, readSource: DataSource) : AbstractRoutingDataSource() { enum class SourceType { WRITE, READ } init { val targetDataSources: MutableMap<Any, Any> = mutableMapOf( SourceType.WRITE to writeSource, SourceType.READ to readSource ) super.setTargetDataSources(targetDataSources) super.setDefaultTargetDataSource(writeSource) super.afterPropertiesSet() } override fun determineCurrentLookupKey(): Any { val sourceType = if (TransactionSynchronizationManager.isCurrentTransactionReadOnly()) SourceType.READ else SourceType.WRITE return sourceType } override fun determineTargetDataSource(): DataSource { val dataSource = super.determineTargetDataSource() logger.info("Target DataSource Type : $dataSource") return dataSource } }
      위 코드는 AbstractRoutingDataSource 를 구현하는 클래스에서 로그 로직을 추가한 예시.