log4j로 sql 로그 찍는법이다.
우선 datasource의 레퍼런스 클래스부터 설정해야된다.
<bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource"> <constructor-arg ref="dataSourceOrg" /> <property name="logFormatter"> <bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter"> <property name="loggingType" value="MULTI_LINE" /> <property name="sqlPrefix" value="SQL ----" /> </bean> </property> </bean>
참조될 클래스는 이거다.
net.sf.log4jdbc.tools.Log4JdbcCustomFormatter
사실 이는 logFormatter를 쓰기위함이다.
그안의 내용은 대충 저렇다.
sqlPrefix는 해당 로그가 찍힐때 시작되는 접두어다.
log4j 설정부분은 일반 로그appender 설정과 동일하다
(http://changpd.blogspot.kr/2013/05/spring-lo4j.html) 참조
<!-- appender :: sql --> <appender name="sql-appender" class="org.apache.log4j.DailyRollingFileAppender"> <param name="append" value="false"/> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <param name="file" value="/home/k2/logs/sql.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}] %-5p: %c - %m%n" /> </layout> </appender>
그리고,
사용하고 싶은 logger의 name을 설정해서 쓰면된다.
본인의 경우는 jdbc.resultsettable 과, jdbc.sqlonly 만 사용한다.
jdbc.sqlonly는 mybatis내에 바인딩된 변수값까지 쿼리로 제공해주고
jdbc.resultsettable 은 쿼리결과를 테이블 형태로 보기좋게 표시해준다.
<!-- SQL logger --> <logger name="jdbc.resultsettable" additivity="false"> <level value="info" /> <appender-ref ref="console" /> <appender-ref ref="sql-appender"/> </logger> <logger name="jdbc.audit" additivity="false"> <level value="off" /> <appender-ref ref="console" /> <appender-ref ref="sql-appender"/> </logger> <logger name="jdbc.resultset" additivity="false"> <level value="off" /> <appender-ref ref="console" /> <appender-ref ref="sql-appender"/> </logger> <logger name="jdbc.sqlonly" additivity="false"> <level value="info" /> <appender-ref ref="console" /> <appender-ref ref="sql-appender"/> </logger> <logger name="jdbc.sqltiming" additivity="false"> <level value="off" /> <appender-ref ref="console" /> <appender-ref ref="sql-appender"/> </logger> <logger name="jdbc.connection" additivity="false"> <level value="off" /> <appender-ref ref="console" /> <appender-ref ref="sql-appender"/> </logger>
댓글
댓글 쓰기