Python logging設(shè)置和logger解析
一、logging模塊講解
1.函數(shù):logging.basicConfig()
參數(shù)講解:
(1)level代表高于或者等于這個(gè)值時(shí),那么我們才會記錄這條日志
(2)filename代表日志會寫在這個(gè)文件之中,如果沒有這個(gè)字段則會顯示在控制臺上
(3)format代表我們的日志顯示的格式自定義,如果字段為空,那么默認(rèn)格式為: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):產(chǎn)生日志的一個(gè)接口。
(2)處理器(Handler):把產(chǎn)生的日志發(fā)送到相應(yīng)的目的地。
(3)過濾器(Filter):更精細(xì)的控制那些日志輸出。
(4)格式器(Formatter):對輸出的信息進(jìn)行格式化。
2.Logger
(1)產(chǎn)生一個(gè)日志
(2)操作
Logger.setLevel() #設(shè)置日志器將會處理的日志消息的最低嚴(yán)重級別 Logger.addHandler() Logger.moveHander() #上面兩個(gè)函數(shù),為該logger對象添加和移除一個(gè)handler對象 Logger.addFilter() Logger.removeFilter() #上面兩個(gè)函數(shù),為該logger對象添加和移除一個(gè)filter對象 Logger.debug: #產(chǎn)生一條debug級別的日志,同理,info,error的日志消息 Logger.exception #創(chuàng)建一個(gè)類似于Logger.error的日志消息 Logger.log() #獲取一個(gè)明確的日志level參數(shù)類型創(chuàng)建一個(gè)日志記錄
(3)如何得到一個(gè)logger對象
實(shí)例化;logging.getLogger()
3.Handler
(1)把log發(fā)送到指定位置
(2)方法
setLevel\setFormat\addFilter\removeFilter
(3)不需要直接使用,Handler是基類
logging.StreamHandler #將日志消息發(fā)送到輸出到Stream。如std.out,std.err或任何file-like對 logging.FileHandler #將日志消息發(fā)送到磁盤文件。默認(rèn)情況下文件大小會無限增長 logging.handlers.RotatongFileHandler #將日志消息發(fā)送到磁盤文件,并支持日志文件按大小切割 logging.handlers.TimeRotatingFileHandler #將日志消息發(fā)送到磁盤文件,并支持日志文件按時(shí)間切割 logging.handlers.HTTPHandler #將日志消息以GET或POST的方式發(fā)送到一個(gè)指定email地址 logging.NullHandler #該Handler實(shí)例會忽略error message 通常想被想使用logging的library
三、源碼
d23_2_logger_usage.py
地址:https://github.com/ruigege66/Python_learning/blob/master/d23_2_logger_usage.py
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python使用fcntl模塊實(shí)現(xiàn)程序加鎖功能示例
這篇文章主要介紹了python使用fcntl模塊實(shí)現(xiàn)程序加鎖功能,較為詳細(xì)的分析了fcntl模塊的具體功能并結(jié)合實(shí)例形式給出了Python實(shí)現(xiàn)程序加鎖的操作技巧,需要的朋友可以參考下2017-06-06Python創(chuàng)建普通菜單示例【基于win32ui模塊】
這篇文章主要介紹了Python創(chuàng)建普通菜單,結(jié)合實(shí)例形式分析了Python基于win32ui模塊創(chuàng)建普通菜單及添加菜單項(xiàng)的相關(guān)操作技巧,并附帶說明了win32ui模塊的安裝命令,需要的朋友可以參考下2018-05-05Python 讀取有公式cell的結(jié)果內(nèi)容實(shí)例方法
在本篇文章里小編給大家整理的是關(guān)于Python 如何讀取有公式cell的結(jié)果內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2020-02-02Python+Django實(shí)現(xiàn)接口測試工具的示例代嗎
本文主要介紹了Python+Django實(shí)現(xiàn)接口測試工具,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07python基礎(chǔ)教程項(xiàng)目二之畫幅好畫
這篇文章主要為大家詳細(xì)介紹了python基礎(chǔ)教程項(xiàng)目二之畫幅好畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04