콘솔창에서 쉽게 쿼리와 결과를 확인하고 싶을때.
보통 log4j를 많이 사용한다.
따라서 Spring boot 사용시 log4j 설정법을 기록해 둔다.
Maven dependency 추가
<!-- log4j2 -->
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
DataConfig 설정
application.properties 에 설정되어 있는 경우
spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mysql://localhost/test
javaConfig 사용했을경우
public DataSource dataSource() {
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
dataSource.setDriverClass(net.sf.log4jdbc.sql.jdbcapi.DriverSpy.class);
dataSource.setUrl("jdbc:log4jdbc:mysql://localhost/test");
dataSource.setUsername("test");
dataSource.setPassword("test!");
return dataSource;
}
굵게 칠해져 있는 부분을 수정해준다.
log4jdbc.log4j2.properties 생성
resources 폴더에 log4jdbc.log4j2.properties 파일을 생성해 준다.
생성 후 아래 내용을 입력한다.
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
maxlinelength는 sql문을 최대 몇 라인까지 출력할 것인가를 결정하는데, 0으로 하면 제한 없이 실행된 그대로 출력이 되고, 설정하지 않으면 그냥 한줄로 쭉 출력된다.
logback.xml 설정
resources 폴더에 logback.xml을 아래와 같이 생성한다.
logback 파일을 통해 로그의 옵션을 설정할 수 있다.
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyyMMdd HH:mm:ss.SSS} [%thread] %-3level %logger{5} - %msg %n</pattern>
</encoder>
</appender>
<logger name="jdbc" level="OFF"/>
<logger name="jdbc.sqlonly" level="OFF"/>
<logger name="jdbc.sqltiming" level="DEBUG"/>
<logger name="jdbc.audit" level="OFF"/>
<logger name="jdbc.resultset" level="OFF"/>
<logger name="jdbc.resultsettable" level="DEBUG"/>
<logger name="jdbc.connection" level="OFF"/>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
옵션설명
- jdbc.sqlonly : SQL문만을 로그로 남기며, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문이 보여진다.
- jdbc.sqltiming : SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다.
- jdbc.audit : ResultSet을 제외한 모든 JDBC 호출 정보를 로그로 남긴다.
- jdbc.resultset : ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남긴다.
- jdbc.resultsettable : SQL 결과 조회된 데이터의 table을 로그로 남긴다.
결과
'Spring' 카테고리의 다른 글
Spring Boot 신규 프로젝트 생성 (0) | 2019.04.12 |
---|---|
Properties 추가하기 (0) | 2014.12.30 |
Spring + mybats 환경에서 xml 파일 변경시 서버 재시작 없이 반영 방법 (0) | 2014.04.10 |
용어정리 (0) | 2013.06.15 |
web.xml (0) | 2013.06.14 |