본문 바로가기
Spring

Spring boot p6spy 적용

by 수앙 2021. 1. 7.

Spring boot 2.3.7 기준으로 쿼리 로깅하기 위한 p6spy 라이브러리를 적용해보자.

글 쓰는 시점 기준으로 쿼리 로깅하면 log4jdbc-log4j2 라이브러리를 적용했는데

이 라이브러리가 2013년 12월까지만 업데이트가 되어있어

p6spy 라이브러리를 쿼리 로깅으로 적용해보았다.

 

문제점은 로깅처리에 대한 이해가 더 필요할 것 같다.

resultset, batch, 로깅 커스터마이징 처리 등...

 

p6spy는 2020년 7월까지 릴리즈가 되어있다. 아래는 p6spy와 p6spy 적용한 spring boot URL이다.

p6spy url : github.com/p6spy/p6spy

 

p6spy/p6spy

P6Spy is a framework that enables database data to be seamlessly intercepted and logged with no code changes to the application. - p6spy/p6spy

github.com

p6spy 적용한 spring boot url : github.com/p6spy/p6spy-it-spring-boot

 

p6spy/p6spy-it-spring-boot

p6spy integration with spring boot. Contribute to p6spy/p6spy-it-spring-boot development by creating an account on GitHub.

github.com

 

이제 spring boot에 적용해보자.

p6spy 관련 설정만 보기로 하자.

 

1. pom.xml 설정

<dependency>
	<groupId>p6spy</groupId>
	<artifactId>p6spy</artifactId>
	<version>3.9.1</version>
</dependency>

 

2. application.yml 설정

# p6spy jdbc 설정
spring:
  datasource:
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    url: jdbc:p6spy:oracle:thin:@localhost:1521:orcl
 
 # p6spy 로깅
 logging:
   level:
     p6spy: info

 

3. spy.properties 생성 및 설정

<프로젝트>/src/main/resources 경로에 spy.properties 파일을 생성한다.

appender=com.p6spy.engine.spy.appender.Slf4JLogger

logMessageFormat=com.p6spy.engine.spy.appender.CustomLineFormat

customLogMessageFormat=took %(executionTime) ms | %(sql)

excludecategories=info,debug,result,resultset

위 설정은 변경한 설정만 넣었다.

spy.properties 파일 전체 설정 내용은 아래 사이트를 들어가 Common Property File Settings 항목을 참고하면 된다.

spy.properties url : p6spy.readthedocs.io/en/latest/configandusage.html

 

Configuration and Usage — p6spy 3.9.2-SNAPSHOT documentation

An example spy.properties file follows (please note default values mentioned as these refer to defaults mentioned in section: Configuration and Usage): modulelist modulelist holds the list of p6spy modules activated. A module contains a group of functional

p6spy.readthedocs.io

 

4. 테스트 코드 생성

여기서는 간단히 select 후 insert 하는 예제를 만들어서 테스트 해보았다(생략).

 

5. 수행 결과

 

끝.

'Spring' 카테고리의 다른 글

Spring AOP  (0) 2023.03.11
Spring 빈이 아닌 클래스에서 빈 얻기  (0) 2022.08.03
Spring batch chunk 동작 방식  (0) 2020.11.05
Spring 4 interceptor custom annotation  (0) 2019.11.13
Spring 4 request logging  (0) 2019.11.07

댓글