2016-06-01 3 views
1

私はTomcatでスプリングブートアプリケーションを実行しています。application.propertiesが外部からロードされているとき、Springブートロギングレベルは無効です

application.propertiesがclasspath経由でロードされると、ログレベルが正しく設定されます。 application.propertiesは、次のJava設定を外部からロードされている

:。

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

「何か」オーバーライドlogging.level *ステートメントは、デフォルト値はINFOレベルに設定されているようです。

何が間違っている可能性がありますか?

+1

自分でファイルを読み込んでいるという事実。これは 'application.properties'の特定のSpringブートローディングをバイパスします。 '@ PropertySource'でロードしないでください。自分でロードする代わりに 'spring.config.location'を指定してください。 –

+0

私はプロファイルを使用しているので、その理由は...私はその方法を試している –

+0

私の他のプロパティが正常に読み込まれた、それはdisapointing –

答えて

5

@PropertySourceを使用していて、カスタムのSpringブートローディングルールが動作するのを期待する代わりに、Spring Bootがそれを処理できるようにしてください。

スプリングブートはすでに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に似たような行動をしています。 –

関連する問題