讓Python程式出錯時自動寄信給你

我喜歡Python的原因之一就是它的標準函式庫把該有的東西幾乎都包進去了,像是ConfigParser用來讀取設定檔,而logging更是不可缺少的,用來記錄程式的訊息非常好用的函式庫,而且這些函式庫不是只是陽春的玩具,而是功能齊全的基礎,其中logging一個很棒的功能就是將錯誤訊息寄給你,因為通常錯誤發生雖然都可以寫到記錄檔中,但是你有多少時間會去翻記錄檔? 通常程式出錯了,你也不會有認何知覺,將錯誤訊息寄給你的好處就是,一有錯誤你就立刻可以知道,而且少見的錯誤也不會被漏掉,例如有人試圖攻擊你的伺服器,在這過程中如果伺服器發生錯誤會寄信給你,在他成功之前你可能就有機會發現,總之將錯誤訊息寄給自己是很有用的技巧

一個錯誤報告的例子

最棒的就是,要用此功能非常簡單,以下是一個簡單的範例:

# -*- coding: utf8 -*-
import logging
import logging.handlers

rootLogger = logging.getLogger('')
rootLogger.setLevel(logging.ERROR)
handler = logging.handlers.SMTPHandler(
    mailhost='smtp.example.com',
    fromaddr='marines@starcraft2.com',
    toaddrs='player@starcraft2.com',
    subject="Houston, We've Got a Problem",
    credentials=('username', 'password')
)
rootLogger.addHandler(handler)

log = logging.getLogger(__name__)
log.fatal('HELP! We are under attack!')

如果你的SMTP設定沒問題的話,以應該可以收到下面這樣的一封信

就是這麼簡單,這樣一來當你的程式出問題時,你再也不會沒有發覺了

This entry was posted in Python, Uncategorized, 中文文章 and tagged , , , . Bookmark the permalink.

Comments are closed.