2015-06-30 1 views
3

Я использую uwsgi для запуска небольшой службы, написанной в колбе.uwsgi - не удается увидеть трассировку в файле журнала

запускает это следующим образом:

flask/bin/uwsgi --http :9090 --master --pidfile /tmp/KVAutobus-uwsgi.pid --processes 30 --threads 2 --wsgi-file app.py --callable app --stats :9191 --daemonize /opt/logs/KVAutobus-uwsgi.log 

Это похоже на работу, но я просто ударил ошибку 500 во время запроса, и я хочу видеть отслеживающий, что приложение колбы производится, но я не могу найти Это. Мне нужны разные параметры ведения журнала?

Вот все, что в файле журнала после ошибки 500:

>tail /opt/logs/KVAutobus-uwsgi.log 

*** Stats server enabled on :9191 fd: 135 *** 
spawned uWSGI http 1 (pid: 20124) 
[pid: 20060|app: 0|req: 1/1] 10.36.100.18() {34 vars in 709 bytes} [Tue Jun 30 14:29:57 2015] DELETE /kvautobus/api/clear_cache_range/MDAwMDAwMDA1NTA0MDAwMDAwMDQwOTYwMDAwMDAwMTczMDU2/MDAwMDAwMDA1NTA0MDAwMDAwMDQwOTYwMDAwMDAwMTg0NDQ4/ => generated 291 bytes in 30023 msecs (HTTP/1.1 500) 2 headers in 84 bytes (1 switches on core 0) 

ответ

1

Я не думаю, что вы можете сделать это там, вам нужно добавить протоколирование внутри вашего приложения, (это то, что я делаю). Вот информация о данных, которые вы можете зарегистрировать https://uwsgi-docs.readthedocs.org/en/latest/LogFormat.html?highlight=log. Кроме того, я предлагаю вам удалить опцию --daemonize и вместо этого использовать supervisord, чтобы иметь управление процессом.

+0

Так что моему приложению нужен способ захвата всех ошибок и записи трассировок в stdout? Проблема в том, что uwsgi не может записывать вещи, написанные на stderr? – Greg

6

Хорошо, @ipinak был на правильном пути. Похоже, что Flask поглощает ошибку и не распространяет ее.

Это the answer I found, который исправляет его. Если ссылка ломается, она в основном устанавливает это в вашем приложении:

from flask import Flask 
application = Flask(__name__) 
application.config['PROPAGATE_EXCEPTIONS'] = True 
Смежные вопросы