web-dev-qa-db-ja.com

ログを記録する方法はありますかpython Gunicornでステートメントを印刷しますか?

このような私のProcfileで:

web: gunicorn app:app \
    --bind "$Host:$PORT" \
    --debug --error-logfile "-" \
    --enable-stdio-inheritance \
    --reload \
    --log-level "debug" 

python printステートメントをstdout/bashに記録する方法はありますか?ここでもbottleフレームワークを使用しています)何かに影響を与えます。

28
kontur

printステートメントは実際には通過していましたが、遅延が発生しています。

-enable-stdio-inheritanceのgunicornドキュメント は、私が持っていると思っていたPYTHONUNBUFFEREDを設定するためのメモですが、構文が間違っているようです。

foreman設定で.envファイルを使用してそれを解決し、次のように変数を設定しました:

PYTHONUNBUFFERED=TRUE
18
kontur

python 3で、flush=True各印刷ステートメントで、私のフラスコ/ユニコーンアプリで機能します。

例えば。

gunicorn --bind 0.0.0.0:8080 server --log-level debug

特定のフラグは必要ありません。

これが役立つかどうかを確認します。

10
jsnceo

以下のコマンドを試してください:

gunicorn --workers 3 --bind 127.0.0.1:5000 --error-logfile /var/log/gunicorn/error.log --access-logfile /var/log/gunicorn/access.log --capture-output --log-level debug

うまくいきました。

ご指定ください log-level to debug(default infohttp://docs.gunicorn.org/en/stable/settings.html#loglevel

また、capture-outputフラグ(デフォルトはfalse) http://docs.gunicorn.org/en/stable/settings.html#capture-output

エラーログファイルでログを監視できるはずです。

6
Satys