1. 程式人生 > 程式設計 >Python logging設定和logger解析

Python logging設定和logger解析

一、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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。