MyBatis, log4jdbc로 console log 설정

초코빵빵·2022년 3월 23일
1

Mybatis

목록 보기
1/1
post-thumbnail

1.Maven, Gradle : log4jdbc 추가

*Repository url 링크

Maven , dependency 추가

<dependency>
	<groupId>org.bgee.log4jdbc-log4j2</groupId>
	<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
	<version>1.16</version>
</dependency>

Gradle , dependency 추가

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


2.설정파일 생성

src/main/resources 패키지 경로에 log4jdbc.log4j2.properties 파일을 생성한다.



3.설정파일에 코드 추가

생성한 log4jdbc.log4j2.properties 에 아래 처럼 설정값을 입력후 저장.

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator



4.Mysql Driver 변경(datasource)

.yml 방식으로 설정을 했으며 Mysql접속 정보 입력란에 변경이 필요하다. 아래처럼 일부명칭이 변경된다.

[Mysql 커넥션 기존]

driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://접속정보~~~~

[Mysql 커넥션 변경 후]

driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://접속정보~~~~



5.application.yml , 디테일 log옵션 설정

application.yml에 logging를 설정하였지만 별도 .xml파일 생성 하는 것도 가능하다.
아래 처럼 추가하고 쿼리를 실행하면 mybatis log가 찍히게 된다.
심플한것을 좋아하기에 log옵션 최소화 했다.

application.yml (복사 & 붙여넣기 하세요.)

# log4jdbc, Mybatis Console Log
logging:
  level:
    com:
      zaxxer:
        hikari: INFO
    javax:
      sql:
        DataSource: OFF
    jdbc:
      audit: OFF
      resultset: OFF
      resultsettable: INFO  #SQL 결과 데이터 Table을 로그로 남긴다.
      sqlonly: OFF     #SQL만 로그로 남긴다.
      sqltiming: INFO    #SQL과 소요시간을 표기한다.
      connection : OFF  # 커넥션 확인가능
    org:
      hibernate:
        SQL: DEBUG
        type:
          descriptor:
            sql:
              BasicBinder: TRACE

옵션 설명

jdbc.sqlonly - SQL 문을 보여준다.
jdbc.sqltiming - SQL 문과 이 SQL 문을 수행하는 시간(ms)을 같이 보여준다.
jdbc.audit - ResultSet 을 제외한 모든 JDBC 호출 정보를 로그로 보여준다. 상당히 많은 양의 로그가 나오기 때문에 권장하지 않음.
jdbc.resultset - ResultSet 을 포함한 모든 JDBC 호출 정보를 로그로 보여준다. audit 처럼 많은 로그가 나오기 때문에 권장하지 않음.
jdbc.resultsettable - SQL 의 결과로 조회된 데이터를 table 형태로 로그를 보여준다.
jdbc.connection - DB 연결, 연결 해제와 관련된 로그를 보여준다


[속성]
로그 레벨 : TRACE -> DEBUG -> INFO -> WARN -> ERROR -> FATAL 순서

OFF - 사용하지 않음

로그 레벨이 높으면 하위 로그 레벨도 출력이 된다. TRACE가 레벨이 제일 높다.



6.MyBatis Query log, console출력

profile
언제 읽어도 기억나도록 차곡차곡~

0개의 댓글