728x90
Spring Boot 내에서 연동한 MyBatis의 쿼리 실행 로그를 볼 수 있도록 설정해보자.
1. Dependency 추가
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
- Log4jdbc Dependency를 추가한다.
2. application.properties DB 설정 변경
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.jdbc-url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=1234
- 기존의 application.properties 내에서 DB 설정 부분이 이렇게 되어 있었다면 수정할 부분은 딱 2가지가 된다.
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.jdbc-url=jdbc:log4jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=1234
- spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy - 드라이버 클래스 이름 변경
- spring.datasource.jdbc-url=jdbc:log4jdbc:postgresql://localhost:5432/postgres - url 주소에 'log4jdbc' 삽입
3. log4jdbc.log4j2.properties 생성
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
- resources 폴더 바로 밑에 생성해준다.
- 다음 설정을 입력해둔다.
4. logback.xml 생성 및 설정
<?xml version="1.0" encoding="UTF-8"?>
<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>
- 쿼리 로그를 어떻게 보여줄지에 대해 직접적으로 설정하는 파일이다.
- 이것도 마찬가지로 resources 폴더 바로 밑에 생성한다.
- 가장 중요한 3가지 설정을 보자면,
- jdbc.sqlonly: 실행된 SQL 문만을 로그로 출력할지 여부
- jdbc.sqltiming: 실행된 SQL문과 함께 해당 쿼리를 실행하는 데 걸린 시간을 로그로 출력할지 여부
- jdbc.resultsettable: SELECT 쿼리 결과인 ResultSet의 내용을 테이블 형식으로 로그에 출력할지 여부
※ 결과
728x90
'웹개발 > Java, Spring' 카테고리의 다른 글
[Spring Boot] 스프링부트 & MyBatis 게시판 파일 업로드 예제 (0) | 2024.07.06 |
---|---|
[MyBatis] Mapper XML 내 ResultMap 사용법 (0) | 2024.06.29 |
[Spring Boot] Thymeleaf HTML 템플릿 수정 시 브라우저 반영 설정 (0) | 2024.06.26 |
[Spring Boot] MyBatis + PostgreSQL 연동 (2) | 2024.06.25 |
[Spring Boot] 스프링 부트 JWT 인증 방식 구현 (0) | 2024.03.04 |