Flask 錯(cuò)誤郵件

2021-08-10 17:42 更新

如果你的應(yīng)用在生產(chǎn)模式下運(yùn)行(會(huì)在你的服務(wù)器上做),默認(rèn)情況下,你不會(huì)看見(jiàn) 任何日志消息。為什么會(huì)這樣?Flask 試圖實(shí)現(xiàn)一個(gè)零配置框架。如果沒(méi)有配置,日 志會(huì)存放在哪?猜測(cè)不是個(gè)好主意,因?yàn)樗聹y(cè)的位置可能不是一個(gè)用戶有權(quán)創(chuàng)建日 志文件的地方。而且,對(duì)于大多數(shù)小型應(yīng)用,不會(huì)有人關(guān)注日志。

事實(shí)上,我現(xiàn)在向你保證,如果你給應(yīng)用錯(cuò)誤配置一個(gè)日志文件,你將永遠(yuǎn)不會(huì)去看 它,除非在調(diào)試問(wèn)題時(shí)用戶向你報(bào)告。你需要的應(yīng)是異常發(fā)生時(shí)的郵件,然后你會(huì)得 到一個(gè)警報(bào),并做些什么。

Flask 使用 Python 內(nèi)置的日志系統(tǒng),而且它確實(shí)向你發(fā)送你可能需要的錯(cuò)誤郵件。 這里給出你如何配置 Flask 日志記錄器向你發(fā)送報(bào)告異常的郵件:

ADMINS = ['yourname@example.com']
if not app.debug:
    import logging
    from logging.handlers import SMTPHandler
    mail_handler = SMTPHandler('127.0.0.1',
                               'server-error@example.com',
                               ADMINS, 'YourApplication Failed')
    mail_handler.setLevel(logging.ERROR)
    app.logger.addHandler(mail_handler)

那么剛剛發(fā)生了什么?我們創(chuàng)建了一個(gè)新的 SMTPHandler 來(lái)用監(jiān)聽(tīng) 127.0.0.1 的郵件服務(wù)器 向所有的 ADMINS 發(fā)送發(fā)件人為 server-error@example.com ,主題 為 “YourApplication Failed” 的郵件。如果你的郵件服務(wù)器需要憑證,這些功能也 被提供了。詳情請(qǐng)見(jiàn) SMTPHandler 的文檔。

我們同樣告訴處理程序只發(fā)送錯(cuò)誤和更重要的消息。因?yàn)槲覀兊拇_不想收到警告或是 其它沒(méi)用的,每次請(qǐng)求處理都會(huì)發(fā)生的日志郵件。

你在生產(chǎn)環(huán)境中運(yùn)行它之前,請(qǐng)參閱 控制日志格式 來(lái)向錯(cuò)誤郵件中置放更多的 信息。這會(huì)讓你少走彎路。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)