作記録

記憶代わり

Spring Boot Application でログファイル(spring.log)を出力する

前提

  1. Spring Boot Application の jarファイル をデプロイしている事。
  2. 上記1のjarファイルをsystemd を利用して起動している事。
  3. OSのuserはroot以外のuserを利用している事。

1. /var/log 配下に対象アプリケーション用のディレクトリを作成する

本番環境の /var/log 配下に作成する。
コマンドは下記の通り。
*****は、アプリケーションの名前。

$ sudo mkdir /var/log/*****

2. jar の引数で logging.file.path を指定する

Spring Boot を利用している場合、ログファイルを出力するようにする為には application.properties に logging.file.path を記載すれば良い。
以下、参考

systemdを利用するので、 jar の実行時に引数としてapplication.propertiesを入力する。

下記は、例である。
%%%は、アプリケーションを実行するOSのuserの名前。 *****は、アプリケーションの名前。

$ cd /etc/systemd/system

$ sudo vi *****.service

↓出力結果

User=%%%
ExecStart=/var/*****/*****-0.0.1-SNAPSHOT.jar \
--logging.file.path=/var/log/***** \
...

3. 上記で作成したディレクトリの所有権を変更する

%%%は、上記2の.serviceのUser名。
は、上記で作成したアプリケーションの名前のディレクトリ。

$ sudo chown %%% /var/log/*****

以下、参考