With my Procfile like this:
web: gunicorn app:app \ --bind "$HOST:$PORT" \ --debug --error-logfile "-" \ --enable-stdio-inheritance \ --reload \ --log-level "debug"
is it in any way possible to get python print
statements to be logged to stdout / bash? I am using the bottle
framework here as well, if that affects anything.
To watch the logs in the console you need to use the option --log-file=- . In version 19.2, Gunicorn logs to the console by default again.
Gunicorn Logs This log file is located at /var/log/cloudify/rest/gunicorn-access. log . The general log mostly has information on Gunicorn workers. It is usually only interesting when there was a problem in starting up the REST service and Flask.
It turns out the print
statements were actually getting through, but with delay.
The gunicorn docs for --enable-stdio-inheritance note to set the PYTHONUNBUFFERED
, which I thought I had, but it seems with wrong syntax.
I solved it using a .env
file with my foreman
setup to set the variable like this:
PYTHONUNBUFFERED=TRUE
In python 3, adding flush=True
in each print statement works for my flask/gunicorn app.
E.g.
gunicorn --bind 0.0.0.0:8080 server --log-level debug
No particular flags are required.
See if this helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With