2016-06-01 3 views
1

Tomcat으로 봄 부팅 응용 프로그램을 실행 중입니다.외부에서 application.properties를로드 할 때 봄 부팅 로깅 수준이 적용되지 않습니다.

application.properties가 classpath를 통해로드 될 때 내 로깅 수준이 올바르게 설정됩니다. application.properties는 다음 자바 설정으로 외부에서로드

:.

@PropertySource(value="file:/some/path/application.properties") 

"뭔가"재정의 logging.level * 문, 그리고 디폴트 값은 INFO 레벨로 설정되어 있는지 보인다.

무엇이 잘못 될 수 있습니까?

+1

파일을 직접로드한다는 사실. 이것은'application.properties'의 특정 스프링 부트 로딩을 우회합니다. '@ PropertySource'를로드하지 마십시오. 스스로로드하는 대신'spring.config.location'을 지정하십시오. –

+0

그 이유는 ... 그 이유는 ... 그 방법을 시도하고있어 –

+0

내 다른 속성들이 성공적으로로드되었다. 즉, disapointing이된다. –

답변

5

@PropertySource으로 작업하는 대신 사용자 정의 스프링 부트 로딩 규칙이 계속 작동하여 스프링 부트가 처리하도록하십시오.

스프링 부트는 이미 loading profile specific property files을 지원합니다. default은 클래스 경로와 현재 디렉토리를 검사합니다. 그러나이 속성은 spring.config.location 속성을 지정하여 쉽게 확장/변경할 수 있습니다. 그냥 사용자 정의 디렉토리를 거기에 넣으십시오.

java -jar your-app.jar --spring.config.location=file:/some/path/ 

참고 : 환경으로 설정 또는 JNDI도 작동합니다.

이제이 디렉토리는 동일한 로딩 규칙 (즉, application.propertiesapplication-{profile}.properties 및 YAML 파일)에 따라 속성/yml 파일을 검사합니다.

+0

매우 명확, 감사합니다. 나는 지금 envs에 비슷한 행동을하고있다. –