Python logging設(shè)置和logger解析
一、logging模塊講解
1.函數(shù):logging.basicConfig()
參數(shù)講解:
(1)level代表高于或者等于這個(gè)值時(shí),那么我們才會(huì)記錄這條日志
(2)filename代表日志會(huì)寫(xiě)在這個(gè)文件之中,如果沒(méi)有這個(gè)字段則會(huì)顯示在控制臺(tái)上
(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)過(guò)濾器(Filter):更精細(xì)的控制那些日志輸出。
(4)格式器(Formatter):對(duì)輸出的信息進(jìn)行格式化。
2.Logger
(1)產(chǎn)生一個(gè)日志
(2)操作
Logger.setLevel() #設(shè)置日志器將會(huì)處理的日志消息的最低嚴(yán)重級(jí)別 Logger.addHandler() Logger.moveHander() #上面兩個(gè)函數(shù),為該logger對(duì)象添加和移除一個(gè)handler對(duì)象 Logger.addFilter() Logger.removeFilter() #上面兩個(gè)函數(shù),為該logger對(duì)象添加和移除一個(gè)filter對(duì)象 Logger.debug: #產(chǎn)生一條debug級(jí)別的日志,同理,info,error的日志消息 Logger.exception #創(chuàng)建一個(gè)類似于Logger.error的日志消息 Logger.log() #獲取一個(gè)明確的日志level參數(shù)類型創(chuàng)建一個(gè)日志記錄
(3)如何得到一個(gè)logger對(duì)象
實(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對(duì) logging.FileHandler #將日志消息發(fā)送到磁盤(pán)文件。默認(rèn)情況下文件大小會(huì)無(wú)限增長(zhǎng) logging.handlers.RotatongFileHandler #將日志消息發(fā)送到磁盤(pán)文件,并支持日志文件按大小切割 logging.handlers.TimeRotatingFileHandler #將日志消息發(fā)送到磁盤(pán)文件,并支持日志文件按時(shí)間切割 logging.handlers.HTTPHandler #將日志消息以GET或POST的方式發(fā)送到一個(gè)指定email地址 logging.NullHandler #該Handler實(shí)例會(huì)忽略error message 通常想被想使用logging的library
三、源碼
d23_2_logger_usage.py
地址:https://github.com/ruigege66/Python_learning/blob/master/d23_2_logger_usage.py
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(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)操作技巧,并附帶說(shuō)明了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)接口測(cè)試工具的示例代嗎
本文主要介紹了Python+Django實(shí)現(xiàn)接口測(cè)試工具,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07python基礎(chǔ)教程項(xiàng)目二之畫(huà)幅好畫(huà)
這篇文章主要為大家詳細(xì)介紹了python基礎(chǔ)教程項(xiàng)目二之畫(huà)幅好畫(huà),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04