slf4j & logback 설정에 이어 log4jdbc를 적용해 보겠습니다.
maven
추가로 log4jdbc를 받아옵니다.
<!-- log4jdbc --> <dependency> <groupId>org.bgee.log4jdbc-log4j2</groupId> <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId> <version>1.16</version> </dependency> | cs |
추가설정
src/main/resources 안에 log4jdbc.log4j2.properties 파일을 만듭니다.
1라인은 필수고 2라인은 쿼리를 정렬하는 용도라서 선택입니다.
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator log4jdbc.dump.sql.maxlinelength=0 | cs |
데이터베이스 연결정보를 수정합니다.
오라클의 경우에도 jdbcUrl 에서 jdbc:log4jdbc:oracle 과 같이 처리하시면 됩니다.
<entry key="db.driverClassName">net.sf.log4jdbc.sql.jdbcapi.DriverSpy</entry> <entry key="db.jdbcUrl">jdbc:log4jdbc:mysql://127.0.0.1:3306/schema?autoReconnect=true&useSSL=false&serverTimezone=UTC</entry> <entry key="db.username">...</entry> <entry key="db.password">...</entry> | cs |
마지막으로 지난번 만들었던 logback.xml 로 가서 logger를 설정해 줍니다.
저는 sqltiming만 나오는걸로 하겠습니다.
<!-- mybatis query log setting --> <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" /> | cs |
결과
아래와 같이 파라미터가 들어가 있고 정렬되어 있는 쿼리를 로그로 찍을 수 있습니다.