본문 바로가기
카테고리 없음

[Spring, Mybatis] 마이바티스 쿼리 확인하기 (로그찍기)

by hankong 2022. 1. 19.
반응형

마이바티스 사용 시 최종 쿼리문 확인 하는 방법

 

1. pom.xml 추가

<!-- Sql Log -->
<dependency>
    <groupId>org.lazyluke</groupId>
    <artifactId>log4jdbc-remix</artifactId>
    <version>0.2.7</version>
</dependency>

 

2. root-context.xml 수정

<!-- 기존코드 -->
<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource" destroy-method="close">
    <property name="driverClassName" value="" />
    <property name="url" value="" />
    <property name="username" value="" />
    <property name="password" value="" />
</bean>
<!--수정코드 -->
<bean id="dataSourceSpied" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="" />
    <property name="url" value="" />
    <property name="username" value="" />
    <property name="password" value="" />
</bean> 
<bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource"> 
    <constructor-arg ref="dataSourceSpied" /> 
    <property name="logFormatter"> 
        <bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter"> 
            <property name="loggingType" value="MULTI_LINE" /> 
            <property name="sqlPrefix" value="SQL : "/> 
        </bean> 
    </property> 
</bean>

3. log4j.xml 수정

따로 수정 하는 내용 없음 필요한 logger 선택해서 추가해주면 됨.

<!--  SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds) -->
<logger name="jdbc.sqltiming" additivity="false">
    <level value="info" />
    <appender-ref ref="console"/> 
</logger>

<!--  SQL 쿼리 문장 -->
<logger name="jdbc.sqlonly" additivity="false"> 
    <level value="info"/> 
    <appender-ref ref="console"/> 
</logger>

<!--  ResultSet을 제외한 모든 JDBC 호출 정보 -->
<logger name="jdbc.audit" additivity="false"> 
    <level value="info"/>  
    <appender-ref ref="console"/> 
</logger> 

<!--  ResultSet을 포함한 모든 JDBC 호출 정보 -->
<logger name="jdbc.resultset" additivity="false">
    <level value="info" />
    <appender-ref ref="console"/> 
</logger>

<!-- SQL 결과 조회된 데이터의 table을 로그 -->
<logger name="jdbc.resultsettable" additivity="false"> 
    <level value="info"/>  
    <appender-ref ref="console"/> 
</logger>
반응형

댓글