파워노트

mybatis query log 찍기 본문

spring boot

mybatis query log 찍기

파워킴 2022. 1. 7. 19:53
반응형

mybatis 등을 이용하여 query 실행시 실행 쿼리 로그가 나오도록.

 

 

build.gradle 의존성 추가

implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16'

 

 

datasource 설정 변경

  • application.yml  datasource 설정 부분 변경 필요 
    • url: jdbc:oracle:thin:/xxxx/.    =>    url: jdbc:log4jdbc:oracle:thin:/xxxx/
    • driver-class-name: oracle.jdbc.OracleDriver  =>  driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring:
  datasource:
    url: jdbc:log4jdbc:oracle:thin:@xxxx
    password: $$$$$$$$
    driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
    hikari:
      connection-timeout: 3000
      validation-timeout: 3000
      minimum-idle: 5
      maximum-pool-size: 20
      idle-timeout: 200000
      max-lifetime: 240000
      pool-name: oraPool

 

log4jdbc.log4j2.properties 생성 설정.

  • /resource/lig4jdbc.log4j2.properties 파일 생성 
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.drivers=org.mariadb.jdbc.Driver

 

log4j2.xml  로그 설정 파일 수정 

    <!-- Query Loggers --> 
    <logger name="jdbc.sqlonly" additivity="false">
        <level value="info"/>
        <appender-ref ref="console"/>
    </logger>

    <logger name="jdbc.sqltiming" additivity="false">
        <level value="warn" />
        <appender-ref ref="console"/>
    </logger>

    <logger name="jdbc.audit" additivity="false">
        <level value="warn"/>
        <appender-ref ref="console"/>
    </logger>

    <logger name="jdbc.resultset" additivity="false">
        <level value="warn" />
        <appender-ref ref="console"/>
    </logger>

    <logger name="jdbc.resultsettable" additivity="false">
        <level value="info"/>
        <appender-ref ref="console"/>
    </logger>
    <!-- Query Loggers -->

 

 

동작 확인 ( 로그 확인 )


 

 

마무리

  • 쿼리 로그의 경우에는 디버깅 용도로만 사용하자 
  • 설정시 공백저장 등에 유의하자  설정의 맨 끝에 공백이 있는경우 오류가 남. 
반응형
Comments