摘要:先來(lái)一段程序告知怎樣配置日志。指定日期時(shí)間格式。需要說(shuō)明的是,和不能同時(shí)提供,否則會(huì)引發(fā)異常中新添加的配置項(xiàng)。
先來(lái)一段程序告知python怎樣配置日志。
logging.basicConfig(level=logging.DEBUG) # 設(shè)置日志級(jí)別 # 創(chuàng)建日志記錄器,指明日志保存的路徑、每個(gè)日志文件的最大大小、保存的日志文件個(gè)數(shù)上限 file_log_handler = RotatingFileHandler("logs/log", maxBytes=1024 * 1024 * 100, backupCount=10) # 創(chuàng)建日志記錄的格式 日志等級(jí) 輸入日志信息的文件名 行數(shù) 日志信息 formatter = logging.Formatter("%(levelname)s %(filename)s:%(lineno)d %(message)s") # 為剛創(chuàng)建的日志記錄器設(shè)置日志記錄格式 file_log_handler.setFormatter(formatter) # 為全局的日志工具對(duì)象(flask app使用的)添加日志記錄器 logging.getLogger().addHandler(file_log_handler)
分析代碼:
basicConfig():對(duì)日志系統(tǒng)進(jìn)行一次性配置,以下是可以指定的關(guān)鍵字參數(shù) filename:指定日志輸出目標(biāo)文件的文件名,指定該設(shè)置項(xiàng)后日志信心就不會(huì)被輸出到控制臺(tái)了 filemode:指定日志文件的打開(kāi)模式,默認(rèn)為"a"。需要注意的是,該選項(xiàng)要在filename指定時(shí)才有效 format:指定日志格式字符串,即指定日志輸出時(shí)所包含的字段信息以及它們的順序。logging模塊定義的格式字段下面會(huì)列出。 datefmt:指定日期/時(shí)間格式。需要注意的是,該選項(xiàng)要在format中包含時(shí)間字段%(asctime)s時(shí)才有效 level:指定日志器的日志級(jí)別 stream:指定日志輸出目標(biāo)stream,如sys.stdout、sys.stderr以及網(wǎng)絡(luò)stream。需要說(shuō)明的是,stream和filename不能同時(shí)提供,否則會(huì)引發(fā) ValueError異常 handlers:Python 3.3中新添加的配置項(xiàng)。該選項(xiàng)如果被指定,它應(yīng)該是一個(gè)創(chuàng)建了多個(gè)Handler的可迭代對(duì)象,這些handler將會(huì)被添加到root logger。需要說(shuō)明的是:filename、stream和handlers這三個(gè)配置項(xiàng)只能有一個(gè)存在,不能同時(shí)出現(xiàn)2個(gè)或3個(gè),否則會(huì)引發(fā)ValueError異常。 RotatingFileHandler():輪轉(zhuǎn)文件處理器,將日志消息發(fā)送到磁盤(pán)文件,并支持日志文件按大小切割 FileHandler():將日志消息發(fā)送到磁盤(pán)文件,默認(rèn)情況下文件大小會(huì)無(wú)限增長(zhǎng) StreamHandler():將日志消息發(fā)送到輸出到Stream,如std.out, std.err或任何file-like對(duì)象。 Formatter():格式器,決定日志記錄的最終輸出格式 %(levelname)s:日志記錄的級(jí)別 %(message)s:日志記錄的內(nèi)容 %(asctime)s:日志記錄的時(shí)間 %(pathname)s:調(diào)用日志記錄文件的全路徑 %(filename)s:pathname的文件名部分 %(module)s:pathname的文件名,不包含后綴 %(funcName)s:調(diào)用日志記錄文件的函數(shù)名 getLogger():創(chuàng)建一個(gè)Logger對(duì)象 addHandler():添加一個(gè)處理器日志級(jí)別
以下是由低到高,默認(rèn)設(shè)置等級(jí)后不顯示低等級(jí)的消息
DEBUG
INFO
WARNING
ERROR
CRITICAL(很少使用)
參考文檔:https://www.cnblogs.com/yyds/...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42911.html
摘要:上一篇文章模塊分析第節(jié)模塊一日志記錄的級(jí)別優(yōu)先級(jí),記錄調(diào)試的詳細(xì)信息,只在調(diào)試時(shí)開(kāi)啟優(yōu)先級(jí),記錄普通的消息,報(bào)告錯(cuò)誤和警告等待。監(jiān)聽(tīng)端口號(hào)上一篇文章模塊分析第節(jié)模塊 上一篇文章:Python模塊分析:第3節(jié)-typing模塊 一、日志記錄的級(jí)別 debug:優(yōu)先級(jí)10,記錄調(diào)試的詳細(xì)信息,只在調(diào)試時(shí)開(kāi)啟 info:優(yōu)先級(jí)20,記錄普通的消息,報(bào)告錯(cuò)誤和警告等待。 warning:優(yōu)...
Python Logging原來(lái)真的遠(yuǎn)比我想象的要復(fù)雜很多很多,學(xué)習(xí)路線堪比git。但是又繞不過(guò)去,alternatives又少,所以必須要予以重視,踏踏實(shí)實(shí)認(rèn)認(rèn)真真的來(lái)好好學(xué)學(xué)才行。 學(xué)習(xí)Logging的目的:簡(jiǎn)單腳本還好,print足夠。但是稍微復(fù)雜點(diǎn),哪怕是三四個(gè)文件加起來(lái)兩三百行代碼,調(diào)試也開(kāi)始變復(fù)雜起來(lái)了。再加上如果是后臺(tái)長(zhǎng)期運(yùn)行的那種腳本,運(yùn)行信息的調(diào)查更是復(fù)雜起來(lái)。一開(kāi)始我還在各種查...
摘要:原因是,直接傳遞格式化后的字符串會(huì)導(dǎo)致參數(shù)被完全求值,這個(gè)有可能是非必要的,會(huì)導(dǎo)致日志性能下降。添加一個(gè)過(guò)濾器用來(lái)進(jìn)行消息格式化上面的中的中文注釋部分直接說(shuō)明了解決方案。 問(wèn)題 Python的logging庫(kù)是標(biāo)準(zhǔn)庫(kù)中用來(lái)實(shí)現(xiàn)日志的庫(kù),功能強(qiáng)大,而且使用起來(lái)也算是方便。該庫(kù)提供了很多個(gè)不同的Handler,用來(lái)對(duì)日志進(jìn)行不同的處理。例如FileHandler用來(lái)將日志記錄到文件,Rot...
摘要:每一條日志記錄也包含級(jí)別,代表對(duì)應(yīng)消息的嚴(yán)重程度。即格式化器,主要功能是確定最終輸出的形式和內(nèi)容。最好是日志能夠按自然天進(jìn)行記錄和分割。 上一章學(xué)習(xí)了自動(dòng)化測(cè)試,很好,現(xiàn)在我們可以絞盡腦汁寫(xiě)出一份全面的測(cè)試,來(lái)保證代碼永遠(yuǎn)健康了。 話雖如此,但是作為一個(gè)獨(dú)立開(kāi)發(fā)者很難寫(xiě)出真正全面的測(cè)試代碼。這是因?yàn)橛脩粼谑褂媚愕木W(wǎng)站時(shí)可不會(huì)循規(guī)蹈矩,而是會(huì)以各種怪異的姿勢(shì)瀏覽網(wǎng)頁(yè)、上傳數(shù)據(jù)。但這也不是...
摘要:最近修改了項(xiàng)目里的相關(guān)功能,用到了標(biāo)準(zhǔn)庫(kù)里的模塊,在此做一些記錄??赡軟](méi)有線程名??赡軟](méi)有用戶輸出的消息日志級(jí)別有如下級(jí)別,,,,默認(rèn)級(jí)別是,模塊只會(huì)輸出指定以上的。在或者中這是很常見(jiàn)的方式。正常的做法應(yīng)該是全局只配置一次。 最近修改了項(xiàng)目里的logging相關(guān)功能,用到了python標(biāo)準(zhǔn)庫(kù)里的logging模塊,在此做一些記錄。主要是從官方文檔和stackoverflow上查詢到的一...
閱讀 3101·2021-11-22 09:34
閱讀 605·2021-11-22 09:34
閱讀 2454·2021-10-08 10:18
閱讀 3387·2021-09-22 15:57
閱讀 2600·2021-09-22 15:25
閱讀 2415·2019-08-30 15:54
閱讀 2127·2019-08-30 15:44
閱讀 1806·2019-08-29 11:18