Avec mon Procfile comme ceci:
web: gunicorn app:app \
--bind "$Host:$PORT" \
--debug --error-logfile "-" \
--enable-stdio-inheritance \
--reload \
--log-level "debug"
est-il possible d'obtenir les instructions python print
à enregistrer dans stdout/bash? J'utilise également le framework bottle
ici, si cela affecte quoi que ce soit.
Il s'avère que les instructions print
passaient réellement, mais avec retard.
La note gunicorn docs for --enable-stdio-inheritance pour définir le PYTHONUNBUFFERED
, que je pensais avoir, mais cela semble avec une syntaxe incorrecte.
Je l'ai résolu en utilisant un .env
fichier avec mon foreman
configuration pour définir la variable comme ceci:
PYTHONUNBUFFERED=TRUE
Dans python 3, en ajoutant flush=True
dans chaque déclaration d'impression fonctionne pour mon application flacon/gunicorn.
Par exemple.
gunicorn --bind 0.0.0.0:8080 server --log-level debug
Aucun indicateur particulier n'est requis.
Voyez si cela aide.
Veuillez essayer la commande ci-dessous:
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 debug
Cela a fonctionné pour moi.
Veuillez préciser log-level
à debug
(par défaut info
) http://docs.gunicorn.org/en/stable/settings.html#loglevel ,
Spécifiez également capture-output
flag (par défaut false) http://docs.gunicorn.org/en/stable/settings.html#capture-output .
Vous devriez pouvoir regarder les journaux dans le fichier journal des erreurs.