포스트 목록

2016년 6월 27일 월요일

쿼리와 결과를 로깅하자

쿼리에 값이 제대로 바인딩 됐는지 혹은 결과는 제대로 가져왔는지를 확인 할 수 있다.

아래 절차를 통해 로그로 찍어보자.

  1. pom.xml 에 log4j-jdbc 추가
  2. log4j.xml 수정
  3. mybatis-context.xml 수정

1. pom.xml 에 log4j-jdbc 추가

<dependency>
  <groupid>org.lazyluke</groupid>
  <artifactid>log4jdbc-remix</artifactid>
  <version>0.2.7</version>
</dependency>

2. log4j.xml 수정
기존에 있었던 log4j.xml 에 다음을 추가한다.

<appender name="console-infolog" class="org.apache.log4j.ConsoleAppender">
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d %5p %m%n" />
  </layout>
</appender>
</pre>
<pre class="brush:xml">
<logger name="jdbc.sqlonly" additivity="false">
  <level value="INFO"/>
  <appender-ref ref="console-infolog"/>
</logger>

<logger name="jdbc.resultsettable" additivity="false">
  <level value="INFO"/>
  <appender-ref ref="console"/>
</logger>
3. mybatis-context.xml 수정

<context:property-placeholder location="classpath:config/jdbc.properties" />

  <bean id="dataSourceSpied" class="org.apache.commons.dbcp2.BasicDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}"></property>
    <property name="url" value="${jdbc.url}"></property>
    <property name="username" value="${jdbc.username}"></property>
    <property name="password" value="${jdbc.password}"></property>
  </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>

  <bean id="sqlSessionFactoryId" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="typeAliasesPackage" value="suwon.spring.study" />
    <property name="mapperLocations" value="classpath:mapper/*.xml" />
    <property name="configLocation" value="/WEB-INF/spring/mybatis-config.xml" />
  </bean>

  <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg index="0" ref="sqlSessionFactoryId" />
  </bean>

댓글 없음:

댓글 쓰기