- 자바 애플리케이션에서 ‘JDBC 드라이버를 사용’할 때, SQL문의 실행 로그를 자동으로 기록해 주는 라이브러리입니다. 또한 MyBatis를 사용하는 경우 Query Formatting을 지원하여 실제 실행되는 쿼리에 대해 문자열로 확인이 가능합니다.
- 기본적으로 Log4j2를 지원하며 구현체인 Slf4j에서 사용이 가능하며 SQL을 실행할 때마다 자동으로 로그를 남겨 디버깅과 모니터링을 수행할 수 있습니다. - 해당 버전은 ‘log4 jdbc-remix’의 모든 개선사항을 포함하고 있으며 이후에 출시가 되었습니다. 주로 개발 단계에서 SQL문을 편리하게 보거나 중요한 쿼리의 수행을 위해 사용합니다.
로그4jdbc에서 사용할 로그 델리게이트(Delegate)의 이름을 지정합니다. 이 구성을 통해 로그 델리게이트를 변경할 수 있습니다. 이 코드에서는 SLF4J를 사용하는 net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator가 지정되어 있습니다.
log4jdbc.dump.sql.maxlinelength:
SQL문의 최대 길이를 지정합니다. 이 속성은 SQL문을 자동 줄 바꿈하는 데 사용됩니다. 이 코드에서는 0으로 설정되어 있으므로 SQL문의 길이에 제한이 없습니다.
log4jdbc.spylogdelegator.name
로그4jdbc에서 사용할 로그 델리게이트(Delegate)의 이름을 지정합니다. 이 구성을 통해 로그 델리게이트를 변경할 수 있습니다. 이 코드에서는 SLF4J를 사용하는 net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator가 지정되어 있습니다.
log4jdbc.dump.sql.maxlinelength
SQL문의 최대 길이를 지정합니다. 이 속성은 SQL문을 자동 줄 바꿈하는 데 사용됩니다. 이 코드에서는 0으로 설정되어 있으므로 SQL문의 길이에 제한이 없습니다.
log4jdbc.auto.load.popular.drivers
자주 사용되는 드라이버를 자동으로 로드할지 여부를 지정합니다. 이 코드에서는 true로 설정되어 있습니다.
log4jdbc.trim.sql.enabled
SQL 문의 앞뒤 공백을 자동으로 제거할지 여부를 지정합니다. 이 코드에서는 true로 설정되어 있습니다.
log4jdbc.trim.sql.extrablanklines
SQL 문의 공백 라인을 제거할지 여부를 지정합니다. 이 코드에서는 false로 설정되어 있습니다.
log4jdbc.suppress.generated.keys.exception
SQL 문에서 생성된 키 예외를 억제할지 여부를 지정합니다. 이 코드에서는 false로 설정되어 있습니다.
spring:
datasource:
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:postgresql://localhost:5432/multiflex
name: X
password: X
- Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
💡 해당 문제는 ‘com.mysql.jdbc.Driver’를 사용하는것이 deprecated 되었다고 합니다. 그래서 새로운 드라이버 클래스인 ‘com.mysql.cj.jdbc.Driver’를 사용하기를 권고하고 있습니다.
💡 위에서 구성한 log4jdbc.log4j2.properties 파일 내에 속성을 추가합니다.
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0# 아래의 내용을 추가합니다.log4jdbc.auto.load.popular.drivers=falselog4jdbc.drivers=com.mysql.cj.jdbc.Driver