본문 바로가기

개발/전자정부프레임워크

[전자정부프레임워크] Oracle log4jdbc 로 쿼리로그 출력

환경

DB : Oracle 11g XE

Framework : egovFramework 3.8 

ojdbc 버전 : ojdbc6 

 

1. pom.xml 에 dependency 추가 

        <dependency>
            <groupId>org.bgee.log4jdbc-log4j2</groupId>
            <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
            <version>1.16</version>
        </dependency>
       

 

2. context-datasource.xml 수정 

driverClassName 과 url 이 수정된다.

 

변경전

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:XE" />
        <property name="username" value="아이디"/>
        <property name="password" value="패스워드"/>
    </bean>

 

변경후

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/>
        <property name="url" value="jdbc:log4jdbc:oracle:thin:@localhost:1521:XE" />
        <property name="username" value="아이디"/>
        <property name="password" value="패스워드"/>
    </bean>

 

3. resource 경로 밑에 log4j2.xml 이 없을 경우 추가 

사용자 환경에 따라 log level 를 지정한다. 

 

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %5p [%c] %m%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="java.sql" level="DEBUG" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="egovframework" level="DEBUG" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
          <!-- log SQL with timing information, post execution -->
        <Logger name="jdbc.sqltiming" level="DEBUG" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="org.springframework" level="INFO" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Root level="INFO">
            <AppenderRef ref="console" />
        </Root>
    </Loggers>
</Configuration>

 

아래는 stackoverflow 에서 가져온 표이다.

로그레벨을 지정할때 참고하자. 개발할때는 DEBUG 가 유용하다. 

 

https://stackoverflow.com/questions/7745885/log4j-logging-hierarchy-order