Con mi Procfile como este:
web: gunicorn app:app \ --bind "$HOST:$PORT" \ --debug --error-logfile "-" \ --enable-stdio-inheritance \ --reload \ --log-level "debug"
¿Es posible de alguna manera obtener que print
sentencias de print
Python se registren en stdout / bash? También estoy usando el marco de la bottle
aquí, si eso afecta algo.
Resulta que las declaraciones print
realidad estaban llegando, pero con retraso.
Los documentos de Gunicorn para –enable-stdio-herencia nota para establecer el PYTHONUNBUFFERED
, que pensé que tenía, pero parece con syntax incorrecta.
Lo resolví usando un archivo .env
con la configuración de mi foreman
para establecer la variable de esta manera:
PYTHONUNBUFFERED=TRUE
Por favor, intente el siguiente comando:
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 info
Funcionó para mí.
Especifique log-level
para debug
( info
predeterminada) http://docs.gunicorn.org/en/stable/settings.html#loglevel ,
Además, especifique el indicador de capture-output
(predeterminado falso) http://docs.gunicorn.org/en/stable/settings.html#capture-output .
Debería poder ver los registros en el archivo de registro de errores.
En Python 3, agregar flush=True
en cada statement de impresión funciona para mi aplicación flask / gunicorn.
P.ej
gunicorn --bind 0.0.0.0:8080 server --log-level debug
No se requieren banderas particulares.
A ver si esto ayuda.