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
https://dev-overload.tistory.com/28
'Framework > Spring' 카테고리의 다른 글
[Spring] 컴포넌트 스캔과 의존관계 자동 주입 (0) | 2023.03.16 |
---|---|
[Spring] 싱글톤 컨테이너 (0) | 2023.03.16 |
[Spring] 스프링 컨테이너와 스프링 빈 (0) | 2023.03.16 |
[Spring] DI와 IoC (0) | 2023.03.13 |
[Spring, Redis] Spring Data Redis에서 직렬화 (0) | 2022.12.14 |