heroku local
私は走るProcfile
:
web: start-nginx gunicorn -c gunicorn.conf.py app:app
start-nginx
いくつかの環境設定を行い、次のように終了します。
{ nginx --some-params & $@ ; }
目的は、nginxとGunicornを並列に実行し、すべてを記録することです。
ほとんど動作します。問題は、Pythonトレースバックが部分的であることです。はじめに「Traceback」行と最初の(デバッグ、ライブラリに役に立たない)呼び出しが切り捨てられます。たとえば、次のようになります。
バックトレース(最後の呼び出しの最後):
venv / lib / python3.4 / site-packages / flask / app.py "、1820行、wsgi_app
直接実行すると正しい出力が表示されますstart-nginx gunicorn ...
。
バックトラッキング(最後の最後の呼び出し):
ファイル "/Users/ojf/project/venv/lib/python3.4/site-packages/flask/app.py"、1820行、wsgi_app
レスポンス= self.make_response( self.handle_Exception (e))
[ここにさらに 25 行]
AttributeError: [有用な行]
その理由は何ですか? stdout | errを別々に記録または処理して問題を解決できますか?それともこれはバグですかheroku-local
?
私も(代わりに{ a & b ; }
)次のことを試しました。
nohup nginx --some-params 1>/tmp/log 2>&1 & echo $! > /tmp/nginx.pid
nohup $@ 1>/tmp/log 2>&1 & echo $! > /tmp/guni.pid
tail -f /tmp/log
スクリプトの唯一の違いは、heroku-local
出力の色付けを停止することです。
答え1
バッファリングされていない出力を設定してみてください。
.env ファイルで環境変数を設定します。
PYTHONUNBUFFERED=True
または
-u
フラグを使用して実行します。python -u script.py