Простая регистрация / отладка приложений с помощью nginx, uwsgi, flask?

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

Я виделэтот обмен в списке рассылкичто привело меняна эту страницу об ошибках регистрации.

Тем не менее, я все еще нахожу это очень запутанным и у меня есть пара вопросов:

(1) В каком файле должен находиться материал ниже?

ADMINS = ['[email protected]']
if not app.debug:
    import logging
    from logging.handlers import SMTPHandler
    mail_handler = SMTPHandler('127.0.0.1',
                               '[email protected]',
                               ADMINS, 'YourApplication Failed')
    mail_handler.setLevel(logging.ERROR)
    app.logger.addHandler(mail_handler)

... при условии "становится больше" шаблон файла для больших приложений? ? ? ?__init__.pyconfig.pyrun.py

(2) Меня там завалили варианты, и я могуСкажи, какой я должен использовать. Какие регистраторы мне следует включить, с какими настройками, чтобы реплицировать отладку локального сервера Python, которую я получаю на стандартный вывод при запуске run.py? Я считаю, что локальный выходной поток по умолчанию очень полезен, больше, чем интерактивный отладчик на странице. У кого-нибудь есть шаблон, которым он мог бы поделиться при настройке чего-либо, копирующего это с развертыванием nginx, с выводом в журнал?

(3) Есть ли что-то, что мне нужно изменить, не на уровне колбы, а в nginx, скажем, в моем/etc/nginx/sites-available/appname файл, чтобы включить ведение журнала?

ОБНОВИТЬ

В частности, яя ищу информацию, которую получаю, когда python запускается локально, почему, скажем, пакет нене работает, или где может быть моя синтаксическая ошибка, или какая переменная не 'не существует:

$ python run.py 
Traceback (most recent call last):
  File "run.py", line 1, in 
    from myappname import app
  File "/home/me/myappname/myappname/__init__.py", line 27, in 
    file_handler.setLevel(logging.debug)
  File "/usr/lib/python2.7/logging/__init__.py", line 710, in setLevel
    self.level = _checkLevel(level)
  File "/usr/lib/python2.7/logging/__init__.py", line 190, in _checkLevel
    raise TypeError("Level not an integer or a valid string: %r" % level)

Когда я запускаю колбу на сервере, я никогда не вижу этого. Я просто получаю ошибку uWSGI в браузере и не знаю, какой код был проблематичным. Я просто хотел бы, чтобы что-то подобное было записано в файл.

Я также заметил, что установка следующей регистрации нея действительно много пишу в файл, даже когда я поднимаю логи до уровня DEBUG:

from logging import FileHandler
file_handler = FileHandler('mylog.log')
file_handler.setLevel(logging.DEBUG)
app.logger.addHandler(file_handler)

mylog.log пусто, даже если в моем приложении нет ошибок.

также добавлю, что ямы пытались установить debug = True следующими способами:__init__.py

app = Flask(__name__)
app.debug = True
app.config['DEBUG'] = True
from werkzeug.debug import DebuggedApplication
app.wsgi_app = DebuggedApplication(app.wsgi_app, True)
app.config.from_object('config')
app.config.update(DEBUG=True)
app.config['DEBUG'] = True
if __name__ == '__main__':
    app.run(debug=True)

В то время как в моем файле config.py у меня есть ...

debug = True
Debug = True
DEBUG = True

Тем не менее, никакой отладки не происходит, и без регистрации или отладки это довольно сложно отследить. Ошибки просто завершают работу приложения с помощью ненужного сообщения браузера:

uWSGI Error
Python application not found

Ответы на вопрос(3)

Ваш ответ на вопрос