Как написать для входа в Python с Nginx + UWSGI - PullRequest
8 голосов
/ 05 ноября 2011

У меня есть сервер под управлением nginx + UWSGI + python. UWSGI работает как демон с установленным флагом: --daemonize /var/log/uwsgi.log, который регистрирует все ошибки приложения.

Я заметил, что при ошибке, если я использую оператор печати python, он будет записывать в журнал, но только при ошибке. Стандартная библиотека журналов python, похоже, не влияет на журнал в любой ситуации.

Как указать библиотекам журналирования python на использование журнала UWSGI?

Ответы [ 2 ]

5 голосов
/ 05 ноября 2011

uWSGI - это сервер wsgi, и поэтому он передает поток в диктовке environ, передаваемый приложению, которое можно вызвать, используя ключ wsgi.errors. Если вы пишете простое приложение wsgi, то запись в этот поток должна сделать эту работу. Если вы используете фреймворк, который абстрагирует интерфейс wsgi (и, судя по всему, вы это делаете, print обычно пишет в sys.stdout, который закрывается в демонизированном процессе и никогда не попадет в какой-либо файл журнала. ), вам, вероятно, понадобится разобраться, как эта структура обрабатывает протоколирование ошибок.

4 голосов
/ 05 ноября 2011

использовать logging.StreamHandler в качестве обработчика журнала

...