728x90
반응형
log4jdbc로 쿼리 실행 결과 로그 출력하는 방법을 알아보겠습니다.
1. pom.xml에 의존성 추가
sql 로그를 남기기 위해 log4jdbc 의존성을 추가합니다.
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1/1.16
2. jdbc properties 변경
DBMS에 상관없이 driverClassName을 net.sf.log4jdbc.sql.jdbcapi.DriverSpy로 변경합니다.
url은 jdbc:log4jdbc:{dbms}:{host} 로 변경합니다.
spring:
datasource:
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://localhost:3306
3. logback 설정
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight([%-5level]) %boldMagenta(%logger){35}:%L - %cyan(%msg%n)</pattern>
</encoder>
</appender>
<logger name="jdbc" level="OFF"/>
<!-- 열려있는 모든 번호와 연결 수립 및 해제 이벤트를 기록합니다. -->
<logger name="jdbc.connection" level="OFF"/>
<!-- resultset을 제외한 JDBC 호출 정보를 로그로 남긴다. -->
<logger name="jdbc.audit" level="OFF"/>
<!-- resultset을 포함한 JDBC 호출 정보를 로그로 남긴다. -->
<logger name="jdbc.resultset" level="OFF"/>
<!-- SQL문을 로그로 남긴다. -->
<logger name="jdbc.sqlonly" level="OFF"/>
<!-- SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다. -->
<logger name="jdbc.sqltiming" additivity="false">
<level value="INFO" />
<appender-ref ref="CONSOLE" />
</logger>
<!-- SQL 결과 조회된 데이터의 table을 로그로 남긴다 -->
<logger name="jdbc.resultsettable" additivity="false">
<level value="INFO" />
<appender-ref ref="CONSOLE" />
</logger>
4. log4jdbc.log4j2.properties 생성
/src/main/resources 하위에 log4jdbc.log4j2.properties 파일을 생성하고 아래 내용을 입력합니다.
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0 #sql문을 최대 몇 라인까지 출력할지 여부: 0은 제한 없음
해당 파일을 생성하지 않으면 모든 쿼리로그가 다음과같이 log4jdbc.log4j2로 남겨집니다.
5. 결과 확인
728x90
반응형
'spring > spring jpa' 카테고리의 다른 글
[JPA] Entity에 Enum 사용하기 (0) | 2024.04.25 |
---|---|
[SpringBoot] JPA Comment (주석 추가) 설정 방법 (0) | 2024.02.02 |
[QueryDSL] FullText 검색을 위한 Match ... against 절 사용법 (0) | 2023.08.24 |
[SpringBoot] QueryDSL org.apache.jasper.JasperException: Unable to compile class for JSP: (0) | 2023.08.24 |
[SpringBoot2] JPA Master/Slave 구조 분기 처리 (2) | 2023.08.23 |
댓글