2010-12-02

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

 
 

Sent to you by l5g via Google Reader:

 
 

via 程式設計 遇上 小提琴 by victor on 3/29/10

我喜歡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設定沒問題的話,以應該可以收到下面這樣的一封信

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


 
 

Things you can do from here:

 
 

No comments:

Post a Comment