Spring Maven Project SQL(query) log 설정
2024. 2. 14. 10:36ㆍSpring
쿼리 로그 콘솔 출력 방법
1. pom.xml 추가
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
2. resources 폴더에 log4jdbc.log4j2.properties 파일 생성 후 추가
#log4jdbc spy의 log event를 slf4j를 통해 처리
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
#로그를 최대 몇줄까지 출력할 것인지 제한 0으로 설정 시 무제한
log4jdbc.dump.sql.maxlinelength=0
3, application.properties 설정 변경
#기존 설정에서 변경
spring.datasource.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mariadb://localhost:3306/test
4. logback.xml 설정
<configuration>
//콘솔에 로그 출력
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyyMMdd HH:mm:ss.SSS} [%thread] %-3level %logger{5} - %msg %n</pattern>
</encoder>
</appender>
//log4jdbc 옵션 설정
<logger name="jdbc" level="OFF"/>
//sql문만 로깅할지 여부
<logger name="jdbc.sqlonly" level="OFF"/>
//쿼리문 수행시간 로깅 여부
<logger name="jdbc.sqltiming" level="DEBUG"/>
//resultset외 모든 jdbc 호출 정보 로깅 여부
<logger name="jdbc.audit" level="OFF"/>
//resultset 포함 모든 jdbc 호출 정보 로깅
<logger name="jdbc.resultset" level="OFF"/>
<logger name="jdbc.resultsettable" level="DEBUG"/>
//connection open close 로깅 여부
<logger name="jdbc.connection" level="OFF"/>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
옵션 정리
* jdbc.sqlonly : SQL문만을 로그로 남기며, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문이 보여진다.
* jdbc.sqltiming : SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다.
* jdbc.audit : ResultSet을 제외한 모든 JDBC 호출 정보를 로그로 남긴다. 많은 양의 로그가 생성되므로 특별히 JDBC 문제를 추적해야 할 필요가 있는 경우를 제외하고는 사용을 권장하지 않는다.
* jdbc.resultset : ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남기므로 매우 방대한 양의 로그가 생성된다.
* jdbc.resultsettable : SQL 결과 조회된 데이터의 table을 로그로 남긴다.
'Spring' 카테고리의 다른 글
spring board 프로젝트 security 적용 (0) | 2023.07.07 |
---|---|
쇼핑몰 프로젝트 비밀번호 찾기 기능 - 이메일 임시 비밀번호 발송 (0) | 2023.05.09 |
쇼핑몰 프로젝트 - 주문관리 - 주문관리 페이지(1) (0) | 2023.05.03 |
쇼핑몰 프로젝트 - 주문관리 - 주문관리 페이지 (2) 상단 검색 기능 (0) | 2023.05.03 |
쇼핑몰 프로젝트 - 주문관리 - 주문관리 페이지 (4) 주문 상태 변경 버튼 (0) | 2023.05.03 |