개발을 하면서 db에서 가져오는 값을 한번에 보는 방법에 대해 며칠헤매다가 적용하지 못햇었다가 드디어 방법을 찾았다. 이 설정 하나 만으로도 디버깅하는 시간을 꽤나 줄여준다.
인터넷에 이 설정을 찾아도 적용되지 않는 이유는 log4j2 설정 뿐만 아니라 jdbc설정도 추가로 해줘야 하기 때문이다.
다음은 log4j 설정에서 log4j2 로 설정으로 변경하고 table로 보는설정이다.
1. Log4j2 Maven Dependency 확인
- 우선 Maven pom.xml 설정을 확인한다.
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
- 없으면 dependency 를 추가 시켜준다.
2. log4j2.properties 생성
- 기존 log4j.xml에 위치에 "log4jdbc.log4j2.properties" 파일을 생성해준다.
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0 // 길이 제한 해제
파일 설정은 아래와 같이 해준다.
3. log4j.xml 추가 설정
<logger name="jdbc.sqltiming" additivity="false">
<level value="warn" />
<appender-ref ref="console"/>
</logger>
<logger name="jdbc.sqlonly" 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.resultsettable" additivity="false">
<level value="info"/>
<appender-ref ref="console"/>
</logger>
- 기존 log4j.xml 에 추가 log 설정을 해준다.
4. Root-context.xml 설정
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/>
<property name="url" value="jdbc:log4jdbc:oracle:thin:@{ip주소}:{포트}:xe"/>
<property name="username" value="{아이디}"/>
<property name="password" value="{비밀번호}"/>
</bean>
- name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"
- name="url" value="jdbc:log4jdbc:oracle:thin:@{ip주소}:{포트}:xe"
- 다음을 주의해서 추가해준다.
그러면 다음과 같이 쿼리문과 테이블이 모두 콘솔창에 출력된다.
'Study Hard > HW' 카테고리의 다른 글
Mybatis resultType="hashmap"일때 NULL 값 받아오기 (0) | 2023.07.11 |
---|---|
RequestParam 어노테이션의 양면성 (0) | 2023.07.11 |
[기능구현] Tiles 구성하기 (0) | 2023.07.10 |
[스프링MVC] 이클립스 Base패키지 명 변경하기 (0) | 2023.07.08 |
SVN 커밋 방법 및 커밋가이드 (0) | 2023.07.03 |
댓글