Spring boot 에서 쿼리를 출력하려면 log4jdbc (jpa or mybatis)

Posted by 자렌
2016. 8. 5. 15:56 개발

Spring boot Query print 쿼리 출력(jpa or mybatis)


심플하게 적습니다


1. 라이브러리 추가 (gradle 경우)

compile("org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16")
compile("org.logback-extensions:logback-ext-spring:0.1.2")
compile files("${System.properties['java.home']}/../lib/tools.jar")

 * 마지막에 tools 는 gradle 이 가끔 서버에서 실행할 경우 문제가 발생되더라구요 메이븐은 필요없을거에요

 * Maven 일때는 xml로 같은 내용을 추가해주면 되겟죠

 

2. 설정 파일 추가

 resources 폴더에 log4jdbc.log4j2.properties 파일 추가

 

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator


3. log4j 설정

 spring boot 는 application.properties 에서 log4j 설정을 할 수 있죠

 일단 저는 debug 로 작업햇으나

logging.level.*=DEBUG

필요한 거 로깅 잡아서 출력하시면 되요~~


로그 샘플 validation 쿼리를 설정해놔서 이게 계속 나오네요 ㅎㅎ


2016-08-05 06:53:30.883  INFO 5944 --- [:1470376670798]] jdbc.audit                               : 1. Statement.new Statement returned 

2016-08-05 06:53:30.883  INFO 5944 --- [:1470376670798]] jdbc.audit                               : 1. Connection.createStatement() returned net.sf.log4jdbc.sql.jdbcapi.StatementSpy@4e00f7d4

2016-08-05 06:53:30.883  INFO 5944 --- [:1470376670798]] jdbc.sqlonly                             : SELECT 1; 


2016-08-05 06:53:30.886  INFO 5944 --- [:1470376670798]] jdbc.sqltiming                           : SELECT 1; 

 {executed in 3 msec}

2016-08-05 06:53:30.887  INFO 5944 --- [:1470376670798]] jdbc.audit                               : 1. Statement.execute(SELECT 1;) returned true

2016-08-05 06:53:30.887  INFO 5944 --- [:1470376670798]] jdbc.audit                               : 1. Statement.close() returned