本文主要介紹了日誌的定義和作用,以及 Python 內置日誌處理的 logging 模塊,同時簡單說明瞭日誌等級和 logging 模塊的簡易使用方法。 ...
全網最適合入門的面向對象編程教程:12 類和對象的 Python 實現-Python 使用 logging 模塊輸出程式運行日誌
摘要:
本文主要介紹了日誌的定義和作用,以及 Python 內置日誌處理的 logging 模塊,同時簡單說明瞭日誌等級和 logging 模塊的簡易使用方法。
原文鏈接:
往期推薦:
全網最適合入門的面向對象編程教程:00 面向對象設計方法導論
全網最適合入門的面向對象編程教程:01 面向對象編程的基本概念
全網最適合入門的面向對象編程教程:02 類和對象的 Python 實現-使用 Python 創建類
全網最適合入門的面向對象編程教程:03 類和對象的 Python 實現-為自定義類添加屬性
全網最適合入門的面向對象編程教程:04 類和對象的Python實現-為自定義類添加方法
全網最適合入門的面向對象編程教程:05 類和對象的Python實現-PyCharm代碼標簽
全網最適合入門的面向對象編程教程:06 類和對象的Python實現-自定義類的數據封裝
全網最適合入門的面向對象編程教程:07 類和對象的Python實現-類型註解
全網最適合入門的面向對象編程教程:08 類和對象的Python實現-@property裝飾器
全網最適合入門的面向對象編程教程:09 類和對象的Python實現-類之間的關係
全網最適合入門的面向對象編程教程:10 類和對象的Python實現-類的繼承和里氏替換原則
全網最適合入門的面向對象編程教程:11 類和對象的Python實現-子類調用父類方法
更多精彩內容可看:
給你的 Python 加加速:一文速通 Python 並行計算
一個MicroPython的開源項目集錦:awesome-micropython,包含各個方面的Micropython工具庫
文檔和代碼獲取:
可訪問如下鏈接進行對文檔下載:
https://github.com/leezisheng/Doc
本文檔主要介紹如何使用 Python 進行面向對象編程,需要讀者對 Python 語法和單片機開發具有基本瞭解。相比其他講解 Python 面向對象編程的博客或書籍而言,本文檔更加詳細、側重於嵌入式上位機應用,以上位機和下位機的常見串口數據收發、數據處理、動態圖繪製等為應用實例,同時使用 Sourcetrail 代碼軟體對代碼進行可視化閱讀便於讀者理解。
相關示例代碼獲取鏈接如下:https://github.com/leezisheng/Python-OOP-Demo
正文
日誌是記錄系統中硬體、軟體和系統問題的信息,同時還可以監視系統中發生的事件。用戶可以通過它來檢查錯誤發生的原因和程式運行歷史記錄。
在 python3 中,內置了 logging 模塊,用於進行日誌相關的處理。日誌是一種可以追蹤某些軟體運行時所發生事件的方法。軟體開發人員可以向他們的代碼中調用日誌記錄相關的方法來表明發生了某些事情。通過 log 的分析,可以方便用戶瞭解系統或軟體、應用的運行情況,日誌的作用可以簡單總結為以下 3 點:
- ①程式調試;
- ②瞭解軟體程式運行情況,是否正常;
- ③軟體程式運行故障分析與問題定位。
logging 模塊預設定義了以下幾個日誌等級用於區別時間嚴重性:
- ①DEBUG | 最詳細的日誌信息,典型應用場景是問題診斷;
- ②INFO | 信息詳細程度僅次於DEBUG,通常只記錄關鍵節點信息,用於確認一切都是按照我們預期的那樣進行工作;
- ③WARNING | 當某些不期望的事情發生時記錄的信息(如,磁碟可用空間較低),但是此時應用程式還是正常運行的;
- ④ERROR | 由於一個更嚴重的問題導致某些功能不能正常運行時記錄的信息;
- ⑤CRITICAL | 當發生嚴重錯誤,導致應用程式不能繼續運行時記錄的信息。
日誌優先順序:CRIRICAL>ERROR>WARNING>INFO>DEBUG,當日誌級別設置為某個級別時,則低於該級別的日誌將不輸出。如日誌級別設置為 INFO,則 DEBUG 級別的日誌將不輸出。
這裡,我們設置日誌優先順序為 DEBUG 並使用 logging.info 方法輸出調試信息。
此時調試信息從終端輸出,也可以保存為 log 文件:
# 在配置下日誌輸出目標文件和日誌格式_
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='my.log', level=logging.DEBUG, format=LOG_FORMAT)