*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'
src/main/resources 패키지 경로에 log4jdbc.log4j2.properties 파일을 생성한다.
생성한 log4jdbc.log4j2.properties 에 아래 처럼 설정값을 입력후 저장.
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
.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://접속정보~~~~
application.yml에 logging를 설정하였지만 별도 .xml파일 생성 하는 것도 가능하다.
아래 처럼 추가하고 쿼리를 실행하면 mybatis log가 찍히게 된다.
심플한것을 좋아하기에 log옵션 최소화 했다.
# 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가 레벨이 제일 높다.