๐ ๊ณต๋ถํ๊ฒ ๋ ๊ณ๊ธฐ
MyBatis ๋ฅผ ํตํด ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ค๊ฐ LIKE ๋ฌธ์ ์์ฑํ๋ ๊ณผ์ ์์ Query ๊ฐ ์ด๋ป๊ฒ ๋ ๋ผ๊ฐ๋์ง ํ์ธํด๋ณด๊ณ ์ถ์ด์ log ๋ฅผ ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๊ณ ์ ํ๋ค.
1๏ธโฃ Log4Jdbc LOg4j2 JDBC ์์กด์ฑ ์ถ๊ฐ
maven repository : https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1/1.16
// gradle.build
implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16'
๋ฌผ๋ก ๋ธ๋ก๊ทธ๋ฅผ ์ฐพ์๋ณด๋ฉด ์ฝ๊ฒ ์ฐพ์ ์ ์์ง๋ง ๋ฉ์ด๋ธ ๋ ํฌ์งํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ค๋ก ์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์ค๋ ์ฐ์ต๋ ์ค์ํ๋ค๊ณ ์๊ฐํด์ ์ฌ์ดํธ๋ฅผ ๋จ๊ฒจ๋ณด์๋ค!
2๏ธโฃ application.yml ์ค์ โ (application.properties)
DB ๋ฅผ ์ฐ๋ํ ์ฌ๋์ด๋ผ๋ฉด ๋๋ถ๋ถ ์๋์ ๊ฐ์ด ๋ง์ถฐ์ ์์ ํ ๋ฐ Log4j2 ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ด์ง ๋ฐ๊ฟ์ฃผ์ด์ผํ๋ค.
// ๋ณ๊ฒฝ ์
spring :
datasource:
url: jdbc:mariadb://localhost:3306/mybatis
driverClassName: org.mariadb.jdbc.Driver
username: ${์ฌ์ฉ์ ์ด๋ฆ}
password : ${์ฌ์ฉ์ ๋น๋ฐ ๋ฒํธ}
// ๋ณ๊ฒฝ ํ
spring:
datasource:
url: jdbc:log4jdbc:mariadb://127.0.0.1:3306/mybatis # ๋ณ๊ฒฝ(1)
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy # ๋ณ๊ฒฝ (2)
hikari: # ์ ํ ์ฌํญ
connection-timeout: 5000
validation-timeout: 1000
maximum-pool-size: 30
minimum-idle: 2
connection-test-query: SELECT 1
// hikari ์ต์
maximum-pool-size: ์ต๋ pool size (defailt 10)
connection-timeout: ์ฐ๊ฒฐ ์ ํจ ์๊ฐ
connection-init-sql: SELECT 1
validation-timeout: 2000
minimum-idle: ์ฐ๊ฒฐ ํ์์ HikariCP๊ฐ ์ ์ง ๊ด๋ฆฌํ๋ ์ต์ ์ ํด ์ฐ๊ฒฐ ์
idle-timeout: ์ฐ๊ฒฐ์์ํ ์ต๋ ์ ํด ์๊ฐ
max-lifetime: ๋ซํ ํ pool ์์๋ connection์ ์ต๋ ์๋ช (ms)
auto-commit: auto commit ์ฌ๋ถ (default true)
3๏ธโฃ application.yml ์ค์ โก
์ถ๊ฐ๋ก log ๋ฅผ ์ด๋ค์์ผ๋ก ๋จ๊ธธ์ง์ ๋ํ ์ค์ ๋ ํ์ํ๋ค.
### MyBatis logging
logging:
level:
jdbc:
sqlonly: off
sqltiming: info
resulttable: info
audit: off
1. jdbc.sqlonly : SQL๋ฌธ ๋ง์ ๋ก๊ทธ๋ก ๋จ๊ธฐ๋ฉฐ, PreparedStatement์ผ ๊ฒฝ์ฐ ๊ด๋ จ๋ argument ๊ฐ์ผ๋ก ๋์ฒด๋ SQL๋ฌธ์ด ๋ณด์ฌ์ง
2. jdbc.sqltiming : SQL๋ฌธ๊ณผ ํด๋น SQL์ ์คํ์ํค๋๋ฐ ์ํ๋ ์๊ฐ ์ ๋ณด(milliseconds)๋ฅผ ํฌํจ.
3. jdbc.audit : ResultSet์ ์ ์ธํ ๋ชจ๋ JDBC ํธ์ถ ์ ๋ณด๋ฅผ ๋ก๊ทธ๋ก ๋จ๊น.
๋ง์ ์์ ๋ก๊ทธ๊ฐ ์์ฑ๋๋ฏ๋ก ์ฌ์ฉ์ ๊ถ์ฅํ์ง ์์.
4. jdbc.resultset : ResultSet์ ํฌํจํ ๋ชจ๋ JDBC ํธ์ถ ์ ๋ณด๋ฅผ ๋ก๊ทธ๋ก ๋จ๊ธฐ๋ฏ๋ก ๋งค์ฐ ๋ฐฉ๋ํ ์์ ๋ก๊ทธ๊ฐ ์์ฑ๋จ.
5. jdbc.resultsettable : SQL ๊ฒฐ๊ณผ ์กฐํ๋ ๋ฐ์ดํฐ์ table์ ๋ก๊ทธ๋ก ๋จ๊น.
off - ์ฌ์ฉํ์ง ์์
info - ์ ๋ณด์ฑ ๋ก๊ทธ
warn - ๊ฒฝ๊ณ ์ฑ ๋ก๊ทธ
error - ์๋ฌ ๋ก๊ทธ
fatal - ์ฌ๊ฐํ ๋ฌธ์ ๋ก๊ทธ
3๏ธโฃ ์คํ ๊ฒฐ๊ณผ ํ์ธ

