myBatis를 이용하는 프로젝트라면 log4jdbc는 필수입니다. 어떤 Query가 실행됐는지 console창에서 바로 확인할 수 있습니다.
build.gradle에 log4jdbc를 추가합니다.
/* Log4jdbc */
implementation group: 'org.bgee.log4jdbc-log4j2', name: 'log4jdbc-log4j2-jdbc4.1', version: '1.16'
application.properties에 기존 driver-class-name과 url을 수정합니다. 이를 통해 실행되는 Query를 추적할 수 있습니다.
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mariadb://127.0.0.1:3306/portfolio?characterEncoding=UTF-8&serverTimezone=UTC
main > resources > 아래에 log4jdbc.log4j2.properties를 작성합니다.
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
main > resources > 아래에 logback.xml을 작성합니다. logger name에 있는 level을 조정하여 사용할 수 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds" debug="true">
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>UTF-8</charset>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<logger name="jdbc" level="off"/>
<logger name="jdbc.sqlonly" level="off"/>
<logger name="jdbc.sqltiming" level="debug"/>
<logger name="jdbc.audit" level="off"/>
<logger name="jdbc.resultset" level="off"/>
<logger name="jdbc.resultsettable" level="off"/>
<logger name="jdbc.connection" level="off"/>
<root level="info">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
이제 Queryr가 실행될 때마다 console에 실행된 Query가 나타납니다.