python 2 flaskアプリがuWSGIの背後で実行されており、supervisordによって管理されています。ログはflaskアプリ。これらのログはuWSGIによって取得され、supervisordによってファイルに書き込まれます。uWSGIログは/ dev/stderrに書き込まれます。以下のsupervisordconfを参照してください。
[program:uwsgi]
command = uwsgi --ini /etc/uwsgi.conf --master
directory = /app
autostart = true
autorestart = true
stdout_logfile = /var/log/myapplication/application.log
stdout_logfile_maxbytes = 50000000
stdout_logfile_backups = 3
stderr_logfile = /dev/stderr
stderr_logfile_maxbytes = 0
stopsignal = INT
これはうまくいきます!アプリケーションログとuWSGIログをうまく分離しました。
python 3にアップグレードしました。アプリケーションログがuWSGIのstderrに格納され、uWSGIログと混合されることを除いて、これはすべて正常に行われました。
UWSGIドックをトロールしましたが、python 2とpython 3の間でこの変更の理由を見つけることができませんでした。
ここで提案されているように、ソケットを定義するときにリダイレクトを試みました http://lists.unbit.it/pipermail/uwsgi/2016-February/008383.html しかし、それはすべてをリダイレクトするだけです(アプリケーションとuWSGIログ)から/dev/null
。
私もこれを見つけました http://lists.unbit.it/pipermail/uwsgi/2016-January/008353.html しかし、pyimport-sharedについては何も見つかりませんでした。
誰かが何が起こっているのか知っていますか?
私のuWSGIconfは、それが役に立ったらここにあります。
[uwsgi]
uid = www-data
gid = www-data
module = application:application
socket = /run/uwsgi.sock
single-interpreter = true
enable-threads = true
buffer-size = 16384
processes = 4
ありがとう
これは通常、pythonアプリケーションのロギング構成と関係があります。ストリームハンドラーを構成するときは、ext://sys.stdout
のstream
値を使用して、その出力がstdoutを指していることを確認してください。 。