我不打算打開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