개요
리팩토링 하면서 실행 시간이랑 sql 쿼리 출력하려고 한다.
jpa는 해봤는데, mybatis 설정은 처음 해서 적어 놓기
방법
개발 환경
Spring Boot + Maven + MyBatis + PostgreSQL
- Pom.xml에 의존성 추가 : log4jdbc-log4j2
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
- application.properties에 작성한 기존 datasource 코드 변경하기
기존 설정
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.driver-class-name=org.postgresql.Driver
변경
spring.datasource.url=jdbc:log4jdbc:postgresql://localhost:5432/mydb
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
- src/main/resources에 log4jdbc.log4j2.properties 파일 생성
Slf4jSpyLogDelegator : 로그 출력 시 slf4j 사용
log4j2만 쓰거나 log4j2랑 slf4j 같이 쓰면 로그 복잡해져서 slf4j로만 로그 나오게 설정
maxlinelength : 출력 길이 제한 : 0이면 무제한
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
- application.properties에 코드 추가
logging.level.root | 모든 로거의 기본값 설정 |
logging.level.jdbc.sqltiming
|
sql 쿼리 실행 시간 출력 |
logging.level.jdbc.sqlonly | sql 쿼리만 출력 |
logging.level.jdbc.resultsettable | sql 쿼리 실행 결과를 테이블 형식으로 출력 |
logging.level.jdbc.audit | jdbc 호출 정보 |
logging.level.jdbc.connection | db 연결/해제 |
logging.level.jdbc.resultset | sql 쿼리 결과 |
logging.level.org.springframework.cache | 캐시 출력 |
- 출력 완료

참고
'프로젝트' 카테고리의 다른 글
[Github Actions] CI/CD 구축하기 : AWS S3 & CloudFront (0) | 2024.12.24 |
---|---|
[AWS] S3 + CloudFront : 정적 웹사이트 배포하기 (0) | 2024.12.23 |
[AWS] Spring Boot에서 S3 버킷에 파일 올리기 (0) | 2024.12.21 |
[AWS] IAM 사용자 개념과 계정 생성하는 방법 (0) | 2024.12.20 |
[AWS] S3 버킷 생성하고 파일 업로드 (0) | 2024.12.19 |