난 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