Python logging設定和logger解析
阿新 • • 發佈:2020-01-09
一、logging模組講解
1.函式:logging.basicConfig()
引數講解:
(1)level代表高於或者等於這個值時,那麼我們才會記錄這條日誌
(2)filename代表日誌會寫在這個檔案之中,如果沒有這個欄位則會顯示在控制檯上
(3)format代表我們的日誌顯示的格式自定義,如果欄位為空,那麼預設格式為:level:log_name:content
import logging LOG_FORMAT = "%(asctime)s======%(levelname)s++++++(message)" logging.basicConfig(filename="log1.txt",level=logging.WARNING,format=LOG_FORMAT) logging.log(logging.INFO,"This is a INFO log") logging.log(logging.ERROR,"This is a ERROR log.")
二、logging模組的處理流程
1.四大元件
(1)日誌器(Logger):產生日誌的一個介面。
(2)處理器(Handler):把產生的日誌傳送到相應的目的地。
(3)過濾器(Filter):更精細的控制那些日誌輸出。
(4)格式器(Formatter):對輸出的資訊進行格式化。
2.Logger
(1)產生一個日誌
(2)操作
Logger.setLevel() #設定日誌器將會處理的日誌訊息的最低嚴重級別 Logger.addHandler() Logger.moveHander() #上面兩個函式,為該logger物件新增和移除一個handler物件 Logger.addFilter() Logger.removeFilter() #上面兩個函式,為該logger物件新增和移除一個filter物件 Logger.debug: #產生一條debug級別的日誌,同理,info,error的日誌訊息 Logger.exception #建立一個類似於Logger.error的日誌訊息 Logger.log() #獲取一個明確的日誌level引數型別建立一個日誌記錄
(3)如何得到一個logger物件
例項化;logging.getLogger()
3.Handler
(1)把log傳送到指定位置
(2)方法
setLevel\setFormat\addFilter\removeFilter
(3)不需要直接使用,Handler是基類
logging.StreamHandler #將日誌訊息傳送到輸出到Stream。如std.out,std.err或任何file-like對 logging.FileHandler #將日誌訊息傳送到磁碟檔案。預設情況下檔案大小會無限增長 logging.handlers.RotatongFileHandler #將日誌訊息傳送到磁碟檔案,並支援日誌檔案按大小切割 logging.handlers.TimeRotatingFileHandler #將日誌訊息傳送到磁碟檔案,並支援日誌檔案按時間切割 logging.handlers.HTTPHandler #將日誌訊息以GET或POST的方式傳送到一個指定email地址 logging.NullHandler #該Handler例項會忽略error message 通常想被想使用logging的library
三、原始碼
d23_2_logger_usage.py
地址:https://github.com/ruigege66/Python_learning/blob/master/d23_2_logger_usage.py
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。