logrotate機能を使って、uwsgiのログをローテートを実現しようとしております。
事象:
- ログファイル自体は日毎にローテートできております(uwsgi.log-20200126といった感じ)
- しかし、uwsgiがローテート後にできるuwsgi.logにログを書き込まず、直前の日付のログファイル(uwsgi.log-20200126)に書き込み続けてしまう
- uwsgiを再起動(pipenv run startとか)するとuwsgi.logにログを書き込みにいくようになる
確認したいこと:
- uwsgi再起動しないで、ログローテートでできた新しいuwsgi.logにuwsgiのログ出力が切り替わる方法を知りたいです。
構成:
CentOS 7.7
nginx 1.17.7
uwsgi 2.0.18
python 3.7.3
pipenv, version 2018.11.26
各種設定:
uwsgi.ini
# ロギング logto = /アプリプロジェクトのPATH/uwsgi.log log-master = true log-reopen = true touch-logreopen = /アプリプロジェクトのPATH/.logreopen_trigger
/etc/logrotate.d/uwsgi
/アプリプロジェクトのPATH/uwsgi.log { daily missingok rotate 10 compress delaycompress notifempty create 640 root root sharedscripts postrotate touch /アプリプロジェクトのPATH/.logreopen_trigger endscript }
回答ではないのですが、ファイルではなく syslog に出力するなどで代替できませんでしょうか。