KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

/etc/systemd/system/myflask.service にログ出力の設定はどうしたらいいですか

登録日 :2024/02/07 06:53
カテゴリ :Linux

/etc/systemd/system/myflask.service ファイルにログを設定するためには、ExecStart行に --log-file オプションを追加することができます。これにより、Gunicornのログが指定したファイルに書き込まれます。

以下は例です:

[Unit]
Description=myflask

[Service]
User=nono
Group=nono
WorkingDirectory=/irbank_app
ExecStart=irbank_app/venv/bin/gunicorn --bind 0.0.0.0:8000 -w 4 myflask:app --log-file=/path/to/log/file.log

[Install]
WantedBy=multi-user.target

上記の例では、--log-file=/path/to/log/file.log を追加しています。適切なパスに変更してください。変更後、サービスを再起動してみて、ログファイルにエラーが出力されるか確認してください。

以下のポイントに注意してください。

--log-file の後には実際のログファイルのパスを指定する必要があります。例えば、 /path/to/log/file.log の部分は実際のログファイルが出力されるディレクトリとファイル名に変更してください。

--log-file オプションで指定するファイルは、サービスが書き込み権限を持っているディレクトリに置かれる必要があります。指定したパスが存在しない場合、事前にディレクトリを作成してください。

また、-w オプションは、Gunicornが立ち上げるワーカープロセスの数を指定します。ここでは -w 4 となっており、4つのワーカープロセスが生成されます。ワーカープロセスはクライアントのリクエストに対してアプリケーションを処理するために使用されます。複数のワーカープロセスを使用することで、同時に多くのリクエストを処理できるようになります。

myflask:app は Gunicorn に対してアプリケーションを指定するものです。この場合、myflask モジュール(おそらく Flask アプリケーションが定義されているモジュール)から app という Flask アプリケーションを取得することを意味しています。

つまり、このコマンドは「Gunicornを使って、0.0.0.0:8000でリクエストを待ち受け、4つのワーカープロセスを立ち上げて、myflask モジュールから app という Flask アプリケーションを処理に使う」といった意味になります。