Log4JDBC로 SQL 로그 출력을 위한 설정
Log4JDBC를 사용해서 JDBC드라이버를 프록시로 래핑하여 SQL로그를 출력하는 방법.
pom.xml
<dependency>
<groupId>org.lazyluke</groupId>
<artifactId>log4jdbc-remix</artifactId>
<version>0.2.7</version> <!-- 버전은 최신 유지 -->
</dependency>
logback.xml수정
Log4JDBC가 SQL 로그를 출력하도록 Logback의 레벨을 설정.
src/main/resources/logback.xml파일을 다음과 같이 설정
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<!-- 스프링부트에 이미 마련되어 있는 기본설정을 포함, 기본값과 다른 부분만 설정할 수 있다. -->
<logger name="jdbc" level="OFF" />
<!-- Log4JDBC는 다양한 로그를 출력하는데, 여기서는 SQL로그만 출력하고 그 외의 내용은 출력하지 않도록 OFF로 설정 -->
<logger name="jdbc.sqltiming" level="DEBUG" />
<!-- SQL로그는 디버그 레벨로 출력되므로 DEBUG로 설정 -->
</configuration>
Log4JDBC를 사용하려면 DataSource를 명시적으로 정의해야 한다.
@Autowired
DataSourceProperties dataSourceProperties;
DataSource dataSource;
@Bean
DataSource realDataSource() {
//명시적 데이터베이스 연결 정보
return this.dataSource;
}
@Bean
@Primary
DataSource dataSource() {
return new Log4jdbcProxyDataSource(this.dataSource);
/**
* Log4jdbcProxyDataSource 클래스로 DataSource를 래핑한다. 이 클래스가 DataSource에 구현된 각각의 처리에 로깅 처리를 끼워 넣는다.
*/
}
이 Bean정의 파일을 읽어들이기 위해 다음과 같이 App클래스에 @ComponentScan을 붙혀둔다.
'프로그래밍 > Spring' 카테고리의 다른 글
JPA를 이용한 페이징 처리 구현 예제 (0) | 2019.04.17 |
---|---|
@Query어노테이션, JPQL(Java Persistence Query Language) (0) | 2019.04.17 |
H2 파일 데이터베이스를 사용하도록 설정 (0) | 2019.04.17 |
JdbcTemplate 사용 예제 (0) | 2019.04.17 |
CommandLineRunner이용 및 어플리케이션 구조 (0) | 2019.04.16 |