可能我們經常會使用print來輸出資訊到視窗,但當我們有很多個py檔案需要運作,項目比
較龐大的到時候,print簡直就是太low了點了。那麼我們可以使用強大的logging子產品,把
輸出到指定的本地pc某個路徑的檔案中。
一、 logging的架構
1、 Loggers: 可供程式直接調用的接口,app通過調用提供的api來記錄日志
2、 Handlers: 決定将日志記錄配置設定至正确的目的地
3、 Filters:對日志資訊進行過濾, 提供更細粒度的日志是否輸出的判斷
4、 Formatters: 制定最終記錄列印的格式布局
二、 Log級别
系統預設有6個級别,優先級:
設定要列印的log時隻需要設定優先級,比如設定列印INFO,那麼比INFO優先級高的WARNING/ERROR/CRITICAL都将被列印。
三、 正常的列印

這裡隻輸出了ERROR和WARNING的資訊,是因為logging預設的輸出級别是WARNING。
四、 輸出到指定檔案
來看看這樣寫的代碼:
使用logging.basicConfig來指定要輸出的檔案以及log的輸出形式、包括時間格式、日志級别等等。
Filename:指定路徑的檔案。這裡使用了+—name—+是将log命名為目前py的檔案名
Format:設定log的顯示格式(即在文檔中看到的格式)。分别是時間+目前檔案名+log輸出級别+輸出的資訊
Level:輸出的log級别,優先級比設定的級别低的将不會被輸出儲存到log文檔中
Filemode: log打開模式
a:代表每次運作程式都繼續寫log。即不覆寫之前儲存的log資訊。
w:代表每次運作程式都重新寫log。即覆寫之前儲存的log資訊
五、 最終的log文檔
檔案名與py檔案名相同,因為basicConfig裡面使用了name來擷取的。
我們來看看内容,這是運作了兩次py檔案的内容:
之前的log資訊,就有8條資訊了。
Ok,log輸出到文檔就這麼簡單。當然大家如果弄熟了可以自己寫記錄器、過濾器等。
本文轉自niedongri 51CTO部落格,原文連結:http://blog.51cto.com/laomomo/2070887,如需轉載請自行聯系原作者