¿Hay una manera de registrar las declaraciones de impresión de python en gunicorn?

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.