목적: Spring Boot 기반의 STS Console에서 query log를 확인
pom.xml
Maven 설정 파일인 pom.xml에 Log4Jdbc를 추가한다.
1 2 3 4 5 6 | <!-- Log4jdbc --> < dependency > < groupId >org.bgee.log4jdbc-log4j2</ groupId > < artifactId >log4jdbc-log4j2-jdbc4.1</ artifactId > < version >1.16</ version > </ dependency > |
application.properties
Spring Boot 설정 파일인 application.properties 중 spring.datasource.driver-class-name와 spring.datasource.url를 다음과 같이 수정한다.
1 2 3 4 5 6 7 8 9 10 11 12 | # =================================================================== # COMMON SPRING BOOT PROPERTIES # =================================================================== # MySQL #spring.datasource.driver- class -name=com.mysql.jdbc.Driver // 수정 전 spring.datasource.driver- class -name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy // 수정 후 spring.datasource.validation-query=select 1 spring.datasource.test-on-borrow= true #spring.datasource.url=jdbc:mysql: //localhost:3306/sakila?autoReconnect=true // 수정 전 spring.datasource.url=jdbc:log4jdbc:mysql: //localhost:3306/sakila?autoReconnect=true 수정 후 spring.datasource.username=root spring.datasource.password= 1234 |
log4jdbc.log4j2.properties
1 2 | log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator log4jdbc.dump.sql.maxlinelength= 0 |
logback.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | < configuration > < appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender" > < encoder > < pattern >%d{yyyyMMdd HH:mm:ss.SSS} [%thread] %-3level %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 = "DEBUG" /> < logger name = "jdbc.connection" level = "OFF" /> < root level = "INFO" > < appender-ref ref = "STDOUT" /> </ root > </ configuration > |
Result
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 10 . select 1 {executed in 0 msec} SELECT * FROM sakila.actor WHERE first_name LIKE :firstName AND last_name LIKE :lastName 20170627 16 : 06 : 52.371 [http-nio- 5000 -exec- 1 ] DEBUG j.sqltiming - org.springframework.jdbc.core.JdbcTemplate$ 1 .doInPreparedStatement(JdbcTemplate.java: 688 ) 10 . SELECT * FROM sakila.actor WHERE first_name LIKE '%%' AND last_name LIKE '%DAVIS%' {executed in 1 msec} 20170627 16 : 06 : 52.374 [http-nio- 5000 -exec- 1 ] INFO j.resultsettable - |---------|-----------|----------|----------------------| |actor_id |first_name |last_name |last_update | |---------|-----------|----------|----------------------| | 4 |JENNIFER |DAVIS | 2006 - 02 - 15 04 : 34 : 33.0 | | 101 |SUSAN |DAVIS | 2006 - 02 - 15 04 : 34 : 33.0 | | 110 |SUSAN |DAVIS | 2006 - 02 - 15 04 : 34 : 33.0 | |---------|-----------|----------|----------------------| |