logging

vance發表於2022-09-29

logging

# 目的
可以很方便的瞭解程式的執行情況
可以分析使用者的操作行為、喜好等資訊
方便開發人員檢查bug

# 日誌等級可以分為5個,從低到高分別是:
DEBUG
INFO
WARNING
ERROR
CRITICAL
# 日誌等級說明:
'DEBUG':程式除錯bug時使用
'INFO':程式正常執行時使用
'WARNING':程式未按預期執行時使用,但並不是錯誤,如:使用者登入密碼錯誤
'ERROR':程式出錯誤時使用,如:IO操作失敗
'CRITICAL':特別嚴重的問題,導致程式不能再繼續執行時使用,如:磁碟空間為空,一般很少使用
預設的是WARNING等級,當在WARNINGWARNING之上等級的才記錄日誌資訊。
日誌等級從低到高的順序是: DEBUG < INFO < WARNING < ERROR < CRITICAL

# 使用方式兩種
輸出到控制檯
儲存到日誌檔案
'控制檯示例'

輸出到控制檯

import logging

logging.debug('這是一個debug級別的日誌資訊')
logging.info('這是一個info級別的日誌資訊')
logging.warning('這是一個warning級別的日誌資訊')
logging.error('這是一個error級別的日誌資訊')
logging.critical('這是一個critical級別的日誌資訊')

# 設定日誌等級和輸出日誌格式
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')

logging.debug('這是一個debug級別的日誌資訊')
logging.info('這是一個info級別的日誌資訊')
logging.warning('這是一個warning級別的日誌資訊')
logging.error('這是一個error級別的日誌資訊')
logging.critical('這是一個critical級別的日誌資訊')

# 程式碼說明:
`level` 表示設定的日誌等級
`format` 表示日誌的輸出格式, 引數說明:
  %(levelname)s: 列印日誌級別名稱
  %(filename)s: 列印當前執行程式名
  %(lineno)d: 列印日誌的當前行號
  %(asctime)s: 列印日誌的時間
  %(message)s: 列印日誌資訊

儲存到日誌檔案

# 日誌資訊儲存到日誌檔案的示例程式碼:
import logging

logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s',
                    filename="log.txt",
                    filemode="w")

logging.debug('這是一個debug級別的日誌資訊')
logging.info('這是一個info級別的日誌資訊')
logging.warning('這是一個warning級別的日誌資訊')
logging.error('這是一個error級別的日誌資訊')
logging.critical('這是一個critical級別的日誌資訊')
本作品採用《CC 協議》,轉載必須註明作者和本文連結
vance

相關文章