天天看點

python logging子產品列印log到指定檔案

可能我們經常會使用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都将被列印。

三、 正常的列印

python logging子產品列印log到指定檔案

這裡隻輸出了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文檔

python logging子產品列印log到指定檔案

檔案名與py檔案名相同,因為basicConfig裡面使用了name來擷取的。

我們來看看内容,這是運作了兩次py檔案的内容:

之前的log資訊,就有8條資訊了。

Ok,log輸出到文檔就這麼簡單。當然大家如果弄熟了可以自己寫記錄器、過濾器等。

本文轉自niedongri 51CTO部落格,原文連結:http://blog.51cto.com/laomomo/2070887,如需轉載請自行聯系原作者