Skip to content

[BUG FIX/90] Logback 설정 파일 경로를 명시적으로 지정할 때, 절대 경로 대신 클래스 패스 통해 설정#142

Merged
persi0815 merged 1 commit intodevelopfrom
bugfix/90
Jan 2, 2025
Merged

[BUG FIX/90] Logback 설정 파일 경로를 명시적으로 지정할 때, 절대 경로 대신 클래스 패스 통해 설정#142
persi0815 merged 1 commit intodevelopfrom
bugfix/90

Conversation

@persi0815
Copy link
Contributor

@persi0815 persi0815 commented Jan 2, 2025

PR 타입

  • 버그 수정

구현한 기능

  • Logback 설정 파일 경로를 명시적으로 지정할 때, 클래스 패스 통해 설정

테스트 결과

image
image
image
image
성공!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

로그 내용 중복 없음 또한 확인 완료

서버 종료시 파일 업로드 확인

매일 정각 파일 업로드 확인 완료
image

코드 설명

설정 파일 경로를 명시적으로 지정할 때는 애플리케이션이 실행 중인 환경에서 접근 가능한 절대 경로를 사용해야 합니다. src/main/resources/logback-spring.xml은 소스 코드 경로이고, 빌드된 애플리케이션은 이 경로를 사용할 수 없습니다.

  • 해당 파일은 배포 환경에서 JAR 파일 내부 혹은 외부에 포함됩니다.

그래서, loggerContext.doConfigure(...)와 같은 메서드에 파일 경로를 전달할 때는 애플리케이션이 접근할 수 있는 절대 경로를 사용해야 하는데, Logback 설정 파일이 클래스패스에 포함되어 있다면, 아래처럼 접근 가능합니다!
configurator.doConfigure(getClass().getClassLoader().getResource("logback-spring.xml"));

만일, 설정 파일이 /var/app/current/logback-spring.xml과 같은 시스템 경로에 있다면, 절대 경로를 사용할 수 있습니다.
configurator.doConfigure("/var/app/current/logback-spring.xml");
이처럼, Logback 설정 파일이 애플리케이션 배포 시 외부 경로( JAR 외부)로 복사된다면, 해당 경로를 명시적으로 지정해야 합니다.

클래스패스를 사용하는 방식은 소스 코드 관리와 배포 간소화에 유리하며, 절대 경로는 외부 설정 파일 관리에 적합합니다.

클래스패스 접근의 이점

src/main/resources에 위치한 파일은 애플리케이션이 빌드될 때 자동으로 클래스패스에 포함됩니다. JAR 파일 내부에서도 동일한 방식으로 접근할 수 있어, 로컬 개발 환경과 배포 환경 간의 차이가 없습니다.

하지만, 절대 경로(/var/...)를 사용하는 방식은 특정 환경에 종속적이어서, 다른 환경에서 실행 시 문제가 발생할 가능성이 있습니다.

@persi0815 persi0815 changed the title bug fix: Logback 설정 파일 경로를 명시적으로 지정할 때, 절대 경로 대신 클래스 패스 통해 설정 [BUG FIX/90] Logback 설정 파일 경로를 명시적으로 지정할 때, 절대 경로 대신 클래스 패스 통해 설정 Jan 2, 2025
@persi0815 persi0815 merged commit c5dd2e2 into develop Jan 2, 2025
@persi0815 persi0815 self-assigned this Jan 2, 2025
@persi0815 persi0815 linked an issue Jan 2, 2025 that may be closed by this pull request
@persi0815 persi0815 deleted the bugfix/90 branch May 2, 2025 01:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG FIX] 배포 환경에서의 AOP 버그 해결

1 participant