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