Mybatis를 이용해서 SQL을 처리하다보면 디버깅을 해야할 때가 있다.
근데 무슨 쿼리가 어떻게 나가는지 알아야할것 아닌가?
그래서 로그를 남겨야한다.
1. maven에 패키지 설정
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
위와 같이 로그 남기기 위한 패키지를 정하고
2. log4jdbc.log4j2.properties파일 추가
resources패키지 밑에 log4jdbc.log4j2.properties파일을 만들고, 아래와 같이 내용 채우자.
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
이 파일에 위 내용을 채워준다.
3. logback-conf.xml파일에 다음과 같이 로그와 관련된 설정들을 한다.
<logger name="jdbc.sqlonly" level="OFF" /> <!-- SQL문만 표시 -->
<logger name="jdbc.sqltiming" level="INFO" /> <!-- SQL문 + 수행시간 표시 -->
<logger name="jdbc.resultsettable" level="INFO" /> <!-- Result Table을 표시 -->
<logger name="jdbc.audit" level="OFF" /> <!-- ResultSet을 제외한 모든 정보를 표시 -->
<logger name="jdbc.resultset" level="OFF" /> <!-- ResultSet을 포함한 모든 정보를 표시 표시 -->
<logger name="jdbc.connection" level="OFF" /> <!-- DB연결/해제 관련 로그 표시 -->
4. DB연결정보를 수정한다. application.yml에 다음과 같이 지정된 연결정보를 수정한다.
datasource:
#변경 전
url: jdbc:mysql://디비주소?useSSL=false&characterEncoding=utf8
driver-class-name: com.mysql.cj.jdbc.Driver
#변경 후
url: jdbc:log4jdbc:mysql://디비주소?useSSL=false&characterEncoding=utf8
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
jdbc:mysql -> jdbc:log4jdbc:mysql로 log4jdbc가 추가될 것.
반응형
댓글