BeyondJ2EE

Spring에서 Powerful하게 SQL 로그 보기

이전 블러그 (“스프링에서 SQL 로그 사용하기 (log4jdbc,log4sql)”)에서
SQL로그 보는 방법에 대해서 말씀 드렸습니다.
최근에 로그 관련 자료를 찾다가 깜놀할정도로 강력한 SQL로그 오픈소스를
발견해서 말씀 드리려고 합니다.
이름은 log4jdbc-remix 입니다.
기존 log4jdbc를 확장한 느낌입니다. 아무튼 사용법도 쉽고 매우 유용해서
설치 방법에 대해서 말씀 드리겠습니다.

  • 제공 하는 기능

(1) Can log result sets as tables
(2) Can be configured as a Spring Datasource
(3) Can use a plugable SQL formatter
(4) Is available in the sonatype maven repository
(5) Only supports Java 6 and above
(log4jdbc which also supports java 1.4 and 1.5)


영어가 어렵지 않아서 ㅠㅠ. 대충 보면 크게 2가지가 중요한것 같네요.
하나는 maven repository 지원 과 jdk1.6이상인 버전만
설치가 가능 하군요…. 1.6이하 분들은 위에 말씀 드린 블로그를 참고 하시고
1.6 사용할때 다시 오세요 쿄쿄

  • 설치 하기

(1) Maven인 경우

<dependency>
<groupId>org.lazyluke</groupId>
<artifactId>log4jdbc-remix</artifactId>
<version>0.2.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>


(2) classpath로 설정 하는 경우

log4j, slf4j, log4jdbc, log4jdbc-remix를 다운 받아서 클래스 패스 설정을 하시면 됩니다.

log4jdbc, slf4j, log4jdbc : http://code.google.com/p/log4jdbc/
log4jdbc-remix : http://code.google.com/p/log4jdbc-remix/

  • log4j.xml 설정 하기


<?xml version=“1.0” encoding=“UTF-8”?>
<!DOCTYPE log4j:configuration PUBLIC “-//LOGGER” “log4j.dtd”>

<log4j:configuration xmlns:log4j=“http://jakarta.apache.org/log4j/”>

    <appender name=“console” class=“org.apache.log4j.ConsoleAppender”>
        <param name=“Target” value=“System.out” />
        <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” additivity=“false”>
        <level value=“info” />
        <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.sqltiming” additivity=“false”>
        <level value=“warn” />
        <appender-ref ref=“console” />
    </logger>
       
    <!– Root Log Level –>
    <root>
        <priority value=“info” />
        <appender-ref ref=“console” />
    </root>
</log4j:configuration>

  • Spring Datasource 설정 하기

<!– datasource –>
    <jdbc:embedded-database id=“hsqlDataSource”
        type=“HSQL”>
        <jdbc:script location=“classpath:schema.sql” />
    </jdbc:embedded-database>

    <!– sql spy –>
    <bean id=“dataSource” class=“net.sf.log4jdbc.Log4jdbcProxyDataSource”>
        <constructor-arg ref=“hsqlDataSource” />
        <property name=“logFormatter”>
            <bean class=“net.sf.log4jdbc.tools.Log4JdbcCustomFormatter”>
                <property name=“loggingType” value=“MULTI_LINE” />
                <property name=“margin” value=“19” />
                <property name=“sqlPrefix” value=“SQL:::” />
            </bean>
        </property>
    </bean>

  • SQL 출력 결과 보기

image
여러분들의 야근에 조금이라도 도움이 되었으면 합니다. ^^ 개발자분들 힘내세요!!!

원문 보기 : http://code.google.com/p/log4jdbc-remix/


To Tumblr, Love PixelUnion