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