我不打算打开dangerous debugging console,但我的应用程序正在收到500错误,似乎没有写任何输出供我深入调查。简单的应用程序日志记录/调试与nginx,uwsgi,烧瓶?
我看到了this exchange on the mailing list,这导致我to this page on logging errors。
不过,我还是觉得这很混乱,有几个问题:
(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__.py
? config.py
? run.py
? (2)我被那里的选项所淹没,并且不能分辨我应该使用哪一个。我应该打开哪些记录器,使用什么设置来复制本地python服务器当我运行run.py时,我得到stdout?我发现默认的本地输出流非常有用,比页面中的交互式调试器更有用。有没有人有一个模式,他们可以分享设置复制nginx部署这个东西,输出到日志? (3)有什么我需要改变,而不是在烧瓶级别,但在nginx中,例如在我的/etc/nginx/sites-available/appname
文件中说,启用日志记录?
UPDATE
具体来说,我正在寻找信息,如我得到的Python程序运行时本地至于为什么,比如说,一个包不能正常工作,或者我的语法错误可能是,或有什么变化没有按” t存在:
$ python run.py
Traceback (most recent call last):
File "run.py", line 1, in <module>
from myappname import app
File "/home/me/myappname/myappname/__init__.py", line 27, in <module>
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
是空白,连我的应用程序错误时出。
我还会补充一点,我已经试过设置调试=在以下几个方面诚然,在__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
我根据您更新的问题更新了我的答案。 – 2013-04-22 09:26:20
你有没有得到这个解决? – hafichuk 2014-11-10 18:22:05
我没有。无法托管生产机器,放弃了烧瓶。 – Mittenchops 2014-11-16 01:31:41