[이클립스]java.lang.IllegalStateException: Logback configuration error detected 해결법 : logback 경로 설정
개요
깃허브에서 스프링 프로젝트를 내려받아 서버를 세팅하고 실행하는 도중에 위와 같은 에러가 발생하면서 실행이 되지 않았다.
외부에서 이렇게 프로젝트를 받아 실행하면 설정 관련한 오류가 종종 발생하곤 하는데 위와 같은 오류도 그중 하나이다.
그래서 왜 위와 같은 에러가 발생했는지, 그리고 해결법은 어떻게 되는지 작성해보고자 한다.
에러
먼저 logback은 간편하게 로그를 관리할 수 있도록 로그 출력 방법을 지정하는 로깅 프레임워크 중 하나이다.
기존 프로젝트를 진행 중 에러가 뜬다면 logback의 경로가 제대로 지정되어 있는지 확인해야 한다.
먼저 logback에 관련된 properties나 logback-spring.xml 파일에 logback에 관련된 경로가 제대로 지정되어 있는지 확인해야 한다.
나 같은 경우는 해당 file의 경로가 ${LOGS_ABSOLUTE_PATH} 라고 지정되어 있었다. 그리고 그 경로는
이런 식으로 환경이 로컬이냐 운영이냐에 따라 분리되어 경로 값을 지정해주고 있었다. 그런데 해당 파일에서 지정된 경로와 에러 메시지에서 나타난 경로가 서로 달랐다. 해당 logback.xml파일을 제대로 인식하고 있지 못하는 것 같았다.(정확히 C:\WINDOWS\system32\LOGS_ABSOLUTE_PATH_IS_UNDEFINED라고 적혀있다.)
왜 지정한 경로를 인식하지 못하고 저 경로를 보고 있는 건지 생각하다가 server.xml 부터 시작해 xml 파일을 대부분 뒤져보았다.
그러다 springProfile이 맞는 경로를 바라보도록 하는 설정이 제대로 되어있나 하는 의문이 들었다.
결론적으로 이게 안 되어 있었다.
이클립스의 tomcat 서버를 더블클릭하면 해당 이미지가 뜬다.
저 부분에서 Open launch configuration을 누르면
VM arguments에 spring.profiles의 이름을 지정할 수 있다. 나는 로컬 환경에서 테스트 중이었으니 local을 입력해주었다. 그러자 아주 잘~ 실행되었다.
예전에 프로젝트 세팅하는 법 설명하면서 이야기했던 부분이었는데 까먹고 있다가 결국 혼자 끙끙거리다 해결하였다.
혹시나 외부 프로젝트를 내려받아 로컬환경에서 테스트하고 있다면 위 사항을 꼭 한번 체크해주자.