logging
# 目的
可以很方便的瞭解程式的執行情況
可以分析使用者的操作行為、喜好等資訊
方便開發人員檢查bug
# 日誌等級可以分為5個,從低到高分別是:
DEBUG
INFO
WARNING
ERROR
CRITICAL
# 日誌等級說明:
'DEBUG':程式除錯bug時使用
'INFO':程式正常執行時使用
'WARNING':程式未按預期執行時使用,但並不是錯誤,如:使用者登入密碼錯誤
'ERROR':程式出錯誤時使用,如:IO操作失敗
'CRITICAL':特別嚴重的問題,導致程式不能再繼續執行時使用,如:磁碟空間為空,一般很少使用
預設的是WARNING等級,當在WARNING或WARNING之上等級的才記錄日誌資訊。
日誌等級從低到高的順序是: 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 協議》,轉載必須註明作者和本文連結