티스토리 뷰
[Java] class path resource [com/p6spy/engine/spy/appender/MessageFormattingStrategy.class] cannot be opened because it does not exist
니용 2023. 4. 6. 10:28
이번에는 p6spy라는 로그 관리 툴을 사용하다가 처음에 애플리케이션이 구동이 안되는 증상이 발생하였습니다. 해결 방법을 말씀드리기에 앞서 해당 플러그인을 사용한 이유를 이야기해보고자 합니다.
https://mvnrepository.com/artifact/com.github.gavlyukovskiy/p6spy-spring-boot-starter
1. p6spy 사용 이유
기존에 JPA를 사용하면서 Query를 자동 생성하는 이점때문에 열심히 사용중이었는데, 쿼리에 파라미터라던지 다른 변수값들이 '?1', '?2'와 같이 순서로만 설정되어 있고, 매핑을 일일히 SQL Tool 안에서 사용하는 번거로움을 해소하고자 하였습니다.
아래 사진은 증상을 해결하고 캡쳐한 스크린샷입니다.
이전의 쿼리에서는 trace_type = ?1와 같이 출력되었으나, 지금은 p6spy를 사용하고 파라미터 변수값이 보이곤 합니다.
2. 에러 원인
에러원인1: 현재 프로젝트에서 사용하고 있는 p6spy 버전은 1.8.1 이었습니다. 버전을 1.8.0으로 다운그레이드 하니 다시 build.gradle 에서 인식하기 시작하였고, 라이브러리를 다운로드 받는 모습을 보여주었습니다. 그리고 다시 업그레이드로 1.8.1 버전으로 변경하였습니다. (현재 stable 한 버전은 1.8.1입니다.)
에러원인2: Java 18 이상 버전 미지원하는 라이브러리 였습니다. JDK18 이상을 사용하면 17이하로 다운그레이드하여 사용하는 것이 안정적입니다.
저는 JDK20 버전을 사용해보려고 하였습니다. 아직 JDK19가 Stable한 자바의 버전이고 현재 20은 베타 버전인 것으로 알고 있습니다.
3. 에러 해결 및 사용하기
방법은 간단히 설명하자면
- build.gradle 을 git 을 통해 형상관리를 하는 경우 dependency 다운로드가 IntelliJ 내에서 자동으로 인식할 수 없으므로, 그것을 감지할 수 있도록 현재 상용화된 메이저 버전(p6spy의 경우 1.x.x)으로 다운로드를 먼저 진행
- build.gradle dependency 가 다운로드 되어 gradle build 가 성공한 경우 애플리케이션 실행
- https://backtony.github.io/spring/2021-08-13-spring-log-1/ 링크를 참조하여 P6SpyFormatter 설정하기
- application.properties 내에 아래와 같이 추가하기
decorator.datasource.p6spy.enable-logging=true
정도가 될 것 같습니다.
'Server' 카테고리의 다른 글
[AWS] ECS 구성하기 전에 용어 정리하기 (0) | 2023.04.13 |
---|---|
[Java] 부하 테스트 코드로 작성해보기 (2) | 2023.04.11 |
[AWS] 서비스는 정말 좋지만 문서는 불편해!! (2) | 2023.04.11 |
[IntelliJ] 검색에서 파일 마스크 처리해서 소스 코드 찾기 (2) | 2023.03.14 |
[Chat GPT] 코틀린으로 웹 개발 하는 것에 대해서 에세이를 간단하게 써달라고 했다 (0) | 2023.03.03 |
[Gradle] Execution failed for task ':jar'.> Entry application.properties is a duplicate but no duplicate handling strategy has been set. 이슈 해결 (0) | 2023.02.28 |