Mybatis 프레임워크에서 발생되는 로그 이벤트를 Spring 프레임워크의 로그 구현체로 기록하는 방법
1. log4jdbc-log4j2-jdbc4 라이브러리를 프로젝트에 빌드 처리 한다. (메이븐 이용 : pom.xml)
https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4/1.16

pom.xml

2. DataSoruce 관련 클래스를 Spirng Bean으로 등록한 Spring Bean Configuration File(root-context.xml)에서 bean 엘리먼트의 driverClassName 필드와 url 필드의 값을 변경한다.
Mybatis 프레임워크에서 발생되는 로그 이벤트를 전달받아 Spring 프레임워크의 로그 구현체로 기록되도록 driverClassName 필드값과 url 필드의 값을 log4jdbc-log4j2-jdbc4 라이브러리에서 제공하는 값으로 변경해준다.
root-context.xml
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource">
<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="scott"/>
<property name="password" value="tiger"/>
</bean>
3. [src/main/resource] 폴더에 [log4jdbc.log4j2.properties] 파일을 작성한다.
- Mybatis 프레임워크에서 발생되는 로그 이벤트를 Spring 프레임워크의 로그 구현체에게 제공하기 위한 Delegator 클래스를 지정하기 위한 파일이다.
log4jdbc.log4j2.properties
log4jdbc.spylogdelegator.name = net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
4. SpyLogDelegator 객체에 의해 발생된 로그 이벤트를 Spring 프레임워크의 로그 구현체로 기록되도록 환경설정파일을 변경해준다. - log4j.xml : logger 엘리먼트 추가
SpyLogDelegator 객체에 의해 발생된 로그 이벤트를 기록하기 위한 logger 엘리먼트를 등록
log4j.xml
<!-- jdbc.sqlonly : 완성된 SQL 명령 기록 -->
<logger name="jdbc.sqlonly">
<level value="info"/>
</logger>
<!-- jdbc.sqltiming : SQL 명령의 실행시간(ms) 기록 -->
<logger name="jdbc.sqltiming">
<level value="info"/>
</logger>
<!-- jdbc.audit : ResultSet 관련 매핑정보를 제외한 모든 JDBC 관련 정보 기록 -->
<logger name="jdbc.audit">
<level value="info"/>
</logger>
<!-- jdbc.resultset : ResultSet 관련 매핑정보를 포함한 모든 JDBC 관련 정보 기록 -->
<!--
<logger name="jdbc.resultset">
<level value="info"/>
</logger>
-->
<!-- jdbc.resultsettable : ResultSet 관련 매핑정보를 표(Table)형식으로 기록 -->
<logger name="jdbc.resultsettable">
<level value="info"/>
</logger>
<!-- jdbc.connection : Connection 객체 관련 정보 기록 - Open 또는 Close -->
<logger name="jdbc.connection">
<level value="info"/>
</logger>
'학원 > 복기' 카테고리의 다른 글
[Spring] TranscationManager (0) | 2023.08.10 |
---|---|
[Spring] SpringMVC 이용한 웹프로그램 작성(2) / Junit 이용 (0) | 2023.08.09 |
[Spring] SpringMVC 이용한 웹프로그램 작성(1) (0) | 2023.08.09 |
[Spring] Resource 파일 읽기 (0) | 2023.08.08 |
[Spring] Forward 이동 / Redirect 이동 (0) | 2023.08.08 |