Framework/Spring

[Spring] log4jdbc 이용해서 Mybatis 쿼리 로그 남기기

Ella_K 2022. 10. 20. 23:43

1. 의존성 주입

implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4:1.16'

 

2. application.properties 변경

# 추가
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy

# datasource url 형식 변경
[변경 전] spring.datasource.url=jdbc:mysql://localhost:3306/dictionary
[변경 후] spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/dictionary

 

3. log4jdbc.log4j2.properties 생성 

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
maxlinelength는 sql문을 몇줄까지 출력할지 결정
0 은 무제한

 

4. 로그 설정하기

application.properties에 추가할 시:

logging.level.jdbc=off
logging.level.jdbc.sqlonly=off
logging.level.jdbc.sqltiming=info
logging.level.jdbc.resultsettable=off
logging.level.jdbc.audit=off
logging.level.jdbc.resultset=off
logging.level.jdbc.connection=off

logback.xml에 추가할 시:

<configuration>
  <logger name="jdbc" level="OFF"/>
  <logger name="jdbc.sqlonly" level="OFF"/>
  <logger name="jdbc.sqltiming" level="info"/>
  <logger name="jdbc.resultsettable" level="OFF"/>
  <logger name="jdbc.audit" level="OFF"/>
  <logger name="jdbc.resultset" level="OFF"/>
  <logger name="jdbc.connection" level="OFF"/>
</configuration>

로그 설정 내용

SQL 관련:

  • jdbc.sqlonly - SQL 문을 보여준다.
  • jdbc.sqltiming - SQL 문과 이 SQL 문을 수행하는 시간(ms)을 같이 보여준다.

JDBC호출 관련:

  • jdbc.audit - ResultSet 을 제외한 모든 JDBC 호출 정보를 로그로 보여준다. 상당히 많은 양의 로그가 나오기 때문에 권장하지 않음.
  • jdbc.resultset - ResultSet 을 포함한 모든 JDBC 호출 정보를 로그로 보여준다. audit 처럼 많은 로그가 나오기 때문에 권장하지 않음.
  • jdbc.connection - DB 연결, 연결 해제와 관련된 로그를 보여준다

TABLE 관련:

  • jdbc.resultsettable - SQL 의 결과로 조회된 데이터를 table 형태로 로그를 보여준다.

 

실행 결과

logging.level.jdbc.sqltiming=info 만 설정
나머지는 모드 OFF

Source

https://frozenpond.tistory.com/86

 

log4jdbc2를 사용해 쿼리 로그 설정하기(mybatis 테이블 로그)

이번 게시글에서는 log4jdbc를 활용한 쿼리로그 출력방법을 정리해보겠습니다. (2021년 12월 가장 핫한 log4j입니다. log4j JVM 설정법 숙지해서 보안이슈가 발생하지 않도록 주의합니다.) 1. pom.xml 에 의

frozenpond.tistory.com

https://dev-overload.tistory.com/28

 

[Spring] Spring Boot 시작하기 (5) - log4jdbc를 이용한 Query로깅

포스팅 시리즈 2020/09/28 - [Dev/Spring] - [Spring] Spring Boot 시작하기 (1) - 프로젝트 생성 2020/09/29 - [Dev/Spring] - [Spring] Spring Boot 시작하기 (2) - Thymeleaf 뷰 템플릿 사용 2020/09/30 - [De..

dev-overload.tistory.com

https://velog.io/@harpuria/Springboot-MyBatis-%EC%BF%BC%EB%A6%AC-%EB%A1%9C%EA%B7%B8-%EC%84%A4%EC%A0%95

 

Springboot MyBatis 쿼리 로그 설정

Springboot 에서 MyBatis 의 쿼리를 로그로 확인하기 위한 설정입니다.

velog.io