본문 바로가기
Programming/SpringFramework

[Spring] log4jdbc-log4j2t 설정 (SQL 쿼리 로그)

by prinha 2020. 8. 7.
반응형

 

 

MyBatis는 내부적으로 JDBC의 PreparedStatement를 이용해서 SQL을 처리합니다.

SQL에서 사용하는 파라미터는 JDBC 에서 "?" 변환되어 사용됩니다.
PreparedStatement의 "?" 에 사용한 값을 확인하는 용도로 사용합니다.

 

Log4jdbc-log4j2라는 라이브러리를 이용하면, 

기존의 jdbc datasource보다 더 상세한 로그를 콘솔에서 확인할 수 있습니다. 
즉 SQL 로그를 보기 위해서입니다.

 

다만 log4jdbc를 이용하는 경우 속도가 기존보다 저하될수 있고, 
데이터베이스에 따라서 지원되지 않는 경우도 있으므로 
설정 후에 정상적 동작을 반드시 확인해야 합니다.

 

개발이 완료하면, 기존 연결상태로 설정을 변환해주어야 합니다.
(배포할때는 원점으로)

 


log4jdbc-log4j2t 설정 가이드

 

1) mvnrepository.com/ 에서 log4jdbc 검색 후 pom.xml에 다음의 코드 추가

<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4 -->
<dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
    <version>1.16</version>
</dependency>

 

2) root-context.xml 에서 dataSource변경 (주석처리)

<!-- 변경 전 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
	<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
	<property name="username" value="ora_user"/>
	<property name="password" value="1234"/>
</bean>

<!-- 변경 후, driverClassName와 url만 바꿔줌 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy" />
	<property name="url" value="jdbc:log4jdbc:oracle:thin:@localhost:1521:orcl" />
	<property name="username" value="ora_user"/>
	<property name="password" value="1234"/>
</bean>

 

3) src/main/resource 경로에 밑의 파일 2개를 복사 ( 게시글에 파일 첨부 해놓았음)

  - log4jdbc.log4j2.properties

  - logback.xml

 

4) 최종적으로 콘솔에 이렇게 떨어져야 정상적인 작동이 시작한 것

INFO : org.ex00.controller.HomeController - Welcome home! The client locale is ko_KR.

 

 

★ 개발이 완료되고 배포 전에는 꼭!! 기존 연결 상태로 변환해주어야한다. 

 

 

log4jdbc-log4j2관련파일.zip
0.00MB

반응형