728x90
반응형
3. log4jdbc-log4j2 설정
▷ MyBatis는 내부적으로 JDBC의 PreparedStatement를 이용해 SQL을 처리
▷ SQL에 전달되는 파라미터는 JDBC와 같이 '?'로 치환되어 처리됨.
▷ SQL 로그를 제대로 보기 위해서 log4jdbc-log4j2 라이브러리 사용
◎ pom.xml 내용 수정(log4jdbc-log4j2 라이브러리 설정)
...(생략)... <!-- 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> ...(생략)...
◎ src/main/resources → org → log4jdbc.log4j2.properties 생성
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
◎ src/main/webapp/WEB-INF/spring → root-context.xml (내용 수정)
<!-- Root Context: defines shared resources visible to all other web components --> <bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig"> <!-- <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property> <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"></property> --> <property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property> <property name="jdbcUrl" value="jdbc:log4jdbc:oracle:thin:@localhost:1521:XE"></property> <property name="username" value="book_ex"></property> <property name="password" value="book_ex"></property> </bean>
◎ 로그의 레벨 설정
테스트 코드 실행시 나타나는 'INFO ....' 메시지는 log4j.xml 마지막 부분의 영향을 받음(아래의 코드)
...(생략)... <!-- Root Logger --> <root> <priority value="info" /> <appender-ref ref="console" /> </root> </log4j:configuration>
◎ 위의 log4j.xml에 내용 추가
...(생략)... <logger name="jdbc.audit"> <level value="warn" /> </logger> <logger name="jdbc.resultset"> <level value="warn" /> </logger> <logger name="jdbc.connection"> <level value="warn" /> </logger> ...(생략)...
기본 설정의 로그는 info 레벨이고 warn과 같이 좀 더 높은 레벨의 로그만 기록하게 수정하면 테스트 코드 실행시 이전에 비해 로그의 양이 줄어듬
log4jdbc-log4j2를 이용해서 SQL에 데이터가 어떻게 전달되었는지 보고 연결시 콘솔창에 나타나는 것에 대해 알아보았습니다.
라이브러리가 많아서 헷갈리는 개념이 좀 많네요,,ㅎㅎ
그래도 반복해서 보면서 익혀볼게요!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
728x90
반응형
'BackEnd > Spring' 카테고리의 다른 글
[코드로 배우는 스프링 웹 프로젝트] ch06 스프링 MVC Controller 1 (0) | 2023.03.26 |
---|---|
[코드로 배우는 스프링 웹 프로젝트] ch05 스프링 MVC 기본 구조 (0) | 2023.03.26 |
[코드로 배우는 스프링 웹 프로젝트] ch04 MyBatis와 스프링 연동 1 (0) | 2023.03.26 |
[코드로 배우는 스프링 웹 프로젝트] ch03 스프링과 오라클 DB 연동(히카리 사용) (0) | 2023.03.26 |
[코드로 배우는 스프링 웹 프로젝트] ch01 스프링 개발환경 (0) | 2023.03.24 |