Springboot MyBatis 쿼리 로그 설정

Honghun Yun·2021년 7월 1일
5

Springboot-Mybatis

목록 보기
2/2
post-thumbnail

log4jdbc 의존성 추가 (gralde 기준)

implementation group: 'org.bgee.log4jdbc-log4j2', name:'log4jdbc-log4j2-jdbc4.1', version: '1.16'

application.properties 설정

datasource 관련 설정

#spring.datasource.driver-class-name=org.postgresql.Driver
#spring.datasource.url=jdbc:postgresql://localhost:5432/postgres

# mybatis logging 을 위한 설정 (driver 과 url 부분이 바뀌어있음을 확인해보자)
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=username
spring.datasource.password=password

로그 관련 설정

  • 로그 관련 설정은 properties 파일이 아니어도, logback.xml 이라는 파일을 만들어서 별도로 기재할 수도 있다.
# 로그 관련 설정
logging.level.jdbc.sqlonly=off
logging.level.jdbc.sqltiming=info
logging.level.jdbc.resultsettable=info
logging.level.jdbc.audit=off
logging.level.jdbc.resultset=off
logging.level.jdbc.connection=off
<!-- logback.xml 에서 설정할 경우 -->
<configuration> 
  <logger name="jdbc.sqlonly" level="OFF"/> 
  <logger name="jdbc.sqltiming" level="info"/> 
  <logger name="jdbc.resultsettable" level="info"/>
  <logger name="jdbc.audit" level="OFF"/>
  <logger name="jdbc.resultset" level="OFF"/>
  <logger name="jdbc.connection" level="OFF"/>
</configuration>
  • 로그 설정 상세내용
    • jdbc.sqlonly - SQL 문을 보여준다.
    • jdbc.sqltiming - SQL 문과 이 SQL 문을 수행하는 시간(ms)을 같이 보여준다.
    • jdbc.audit - ResultSet 을 제외한 모든 JDBC 호출 정보를 로그로 보여준다. 상당히 많은 양의 로그가 나오기 때문에 권장하지 않음.
    • jdbc.resultset - ResultSet 을 포함한 모든 JDBC 호출 정보를 로그로 보여준다. audit 처럼 많은 로그가 나오기 때문에 권장하지 않음.
    • jdbc.resultsettable - SQL 의 결과로 조회된 데이터를 table 형태로 로그를 보여준다.
    • jdbc.connection - DB 연결, 연결 해제와 관련된 로그를 보여준다
  • 속성값 내용
    • ex) warn 으로 설정한 경우 이전 레벨인 debug, info 로그는 출력하지 않음.
    • 따라서 개발하면서 계속 로그를 추적하고 싶은 경우 debug, info 로 설정하는 편을 권장.
    • off - 사용하지 않음
    • info - 정보성 로그
    • warn - 경고성 로그
    • error - 에러 로그
    • fatal - 심각한 문제 로그

log4jdbc.log4j2.properties 생성 및 설정

  • src/main/resources 폴더 하위에 log4jdbc.log4j2.properties 이름으로 파일 생성 후 아래 내용 기재.
    • maxlinelength 부분은 SQL 문을 몇줄까지 출력할지를 지정할 수 있으며, 0 이면 무제한.
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0

로그를 확인해보자!

profile
SI Developer (since 2019.06.20)

0개의 댓글