Logback 의존성 호환 문제 해결하기

임현규·2023년 8월 2일
0

Meca project 개발 일지

목록 보기
26/27

logback 적용시 에러 발생

프로젝트를 진행하면서 서비스 로직의 수행시간과 에러 또는 경고에 대한 로그 정보를 얻어오고 관리하고 싶었다. 이를 위해서 logback의 상세 정보를 수정하고 관리하기 위해 logback-spring.xml을 추가하고 configuration 정보를 추가했다. 그러나 프로젝트 실행시 다음과 같은 에러가 발생했다.

문제 해결하기

구글링과 chatgpt에게 물어보니 이런 문제가 발생하는 이유는 크게 2가지가 있다고 했다. 하나는 xml 파일을 잘못 작성해서 인식이 안되는 문제, 그리고 다른 하나는 의존성이 충돌하거나 logback 버전이 호환하지 못하는 경우가 있다고 했다.

1. 잘 동작하는 xml 파일을 가져와서 적용했지만 실패

다른 곳에서 간단한 프로젝트를 만들어 잘 동작하는 logback-spring.xml 파일을 가져와 적용해보았으나 똑같은 에러가 발생했다. 그러나 에러를 해결하지 못했고, 여전히 어플리케이션을 실행할 수 없었다.

2. 호환되는 의존성 확인하고 적용해보기

일일히 호환되는 의존성을 확인하기 전에 현재 프로젝트의 logback version의 dependency를 우선 확인해보도록 했다.

https://docs.spring.io/spring-boot/docs/2.7.7/reference/html/dependency-versions.html

지금 내가 진행하는 프로젝트의 경우 ojdbc8-production:21.9.0.0을 사용하는데 21.5.0.0으로 지원하지 않는다. 그래서 해당 버전으로 수정했다.

그러나 여전히 같은 에러가 발생했다

3. 기존 의존성에서 xmlparserv2 제거하기

https://stackoverflow.com/questions/70255734/sax-feature-not-supported-in-spring-boot-2-6-1

implementation('com.oracle.database.jdbc:ojdbc8-production:21.5.0.0') {
        exclude group: 'com.oracle.database.ha', module: 'simplefan'
        exclude group: 'com.oracle.database.ha', module: 'ons'
        exclude group: 'com.oracle.database.xml', module: 'xmlparserv2'
    }

xmlparserv2를 의존성에거 제거했더니 정상적으로 동작했다.

4. 기본 ojdbc8 버전 사용해보기

odjbc8-production 대신 odjbc8 기본 버전을 사용해도 해당 문제를 해결할 수 있었다.

profile
엘 프사이 콩그루

1개의 댓글

comment-user-thumbnail
2023년 8월 2일

이런 유용한 정보를 나눠주셔서 감사합니다.

답글 달기