Spring Boot/実行環境ごとにログファイルの出力先を変える

キーワード

  • Spring Boot
  • logback

したいこと

実行環境ごと(本番、ステージング、開発)にログファイルの出力先を変えたい。

環境 ログファイル
本番 /home/hoge/log/application.log
ステージング /home/hogestg/log/stg.application.log
開発 /home/hogedev/log/dev.application.log

など。

せっかく同じ構成の環境を用意するのにディレクトリ名を変えなくてもよくないかな。と思ったりもするけど、なぜかそう求められたりすることは多い。

どうやって

logback-spring.xmlで次のように設定する。

<springProfile name="prod">
	<property name="WEB_FILE_NAME" value="/home/hoge/log/application.log" />	
</springProfile>
<springProfile name="stg">
	<property name="WEB_FILE_NAME" value="/home/hogestg/log/stg.application.log" />	
</springProfile>
<springProfile name="dev">
	<property name="WEB_FILE_NAME" value="/home/hogedev/log/dev.application.log" />	
</springProfile>

ファイル名の指定で次のように書く。

<file>${WEB_FILE_NAME}</file>

ノート

logback-spring.xmlにするとSpringのプロフィールが使えるのですね。

参考

作成日 2017-04-27