1. 程式人生 > 實用技巧 >20201228-1 一個使用模組logging的程式

20201228-1 一個使用模組logging的程式

import logging 
logging.basicConfig(level=logging.INFO, filename='mylog.log') 
logging.info('Starting program') 
logging.info('Trying to divide 1 by 0') 
print(1/0) 
logging.info('The division succeeded') 
logging.info('Ending program')

執行這個程式時,將生成下面的日誌檔案(mylog.log): 
INFO:root:Starting program 
INFO:root:Trying to divide 
1 by 0
如你所見,試圖將1除以0後什麼都沒有記錄下來,因為這種錯誤將導致程式終止。 這是一種簡單的錯誤,你可根據程式崩潰時列印的異常來跟蹤確定問題出在什麼地方。
不會導致程式終止、而只是讓它行為異常的bug是難查詢的, 但通過檢視詳盡的日誌檔案也許能夠幫助你找出問題 出在什麼地方。
這個示例中的日誌檔案並不是很詳細,但通過合理地配置模組logging,可讓日誌以你希望 的方式執行。下面是幾個這樣的示例。  記錄不同型別的條目(資訊、除錯資訊、警告、自定義型別等)。
預設情況下,只記錄警告。(這就是在程式碼清單中顯式地將level設定為logging.INFO的原因所在。)  只記錄與程式特定部分相關的條目。  記錄有關時間、日期等方面的資訊。  記錄到其他位置,如套接字。  配置日誌器,將一些或大部分日誌過濾掉,這樣無需重寫程式就能獲得所需的日誌資訊。模組logging非常複雜,文件中還提供了其他很多相關的資訊