日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 日志模塊logging的使用場景及示例

瀏覽:216日期:2022-06-30 15:13:28
前言

日志是對于軟件執行所發生的事件的一種追蹤記錄方式。日常使用過程中對代碼執行的錯誤和問題會進行查看日志來分析定位問題所在。平常編寫代碼以及調試也經常用到。通常的新手的做法是直接print打印,但是打印的結果只在控制臺顯示。今天我們學習一種高級的日志打印和記錄模塊logging。

logging提供了一系列的函數,它們是debug(), info(), warning(), error(), 和critical()。

他們的使用場景請看下表

你想要執行的任務 此任務的最好的工具 對于命令行或程序的應用,結果顯示在控制臺。 print() 在對程序的普通操作發生時提交事件報告(比如:狀態監控和錯誤調查) logging.info() 函數(當有診斷目的需要詳細輸出信息時使用 logging.debug() 函數) 提出一個警告信息基于一個特殊的運行時事件 warnings.warn()位于代碼庫中,該事件是可以避免的,需要修改客戶端應用以消除告警logging.warning() 不需要修改客戶端應用,但是該事件還是需要引起關注 對一個特殊的運行時事件報告錯誤 引發異常 報告錯誤而不引發異常(如在長時間運行中的服務端進程的錯誤處理) logging.error(), logging.exception() 或 logging.critical()分別適用于特定的錯誤及應用領域

日志功能分別對各種事件和嚴重性都進行分級。

名稱 何時使用 等級 DEBUG 細節信息,僅當診斷問題時適用。 10 INFO 確認程序按預期運行 20 WARNING 表明有已經或即將發生的意外(例如:磁盤空間不足)。程序仍按預期進行 30 ERROR 由于嚴重的問題,程序的某些功能已經不能正常執行 40 CRITICAL 嚴重的錯誤,表明程序已不能繼續執行 50

示例簡單示例

因為是python自帶的所以無需安裝,默認的級別是WARNING,所以下面只顯示一條warning信息。

import logginglogging.warning(’this is warning’)logging.info(’this is info’)

python 日志模塊logging的使用場景及示例

更改級別

我們將默認的級別改成最低級別,則會打印同級別以及高級別的日志信息

import logging logging.basicConfig(level=logging.DEBUG)logging.debug(’this is debug’)logging.info(’this is info’)logging.warning(’this is warning’)logging.error(’this is error’)

python 日志模塊logging的使用場景及示例

保存日志

只是打印到控制臺對于少量信息倒是可控,但是信息量大的時候就不方便查找了。那么我們需要將其保存到文件中。

import logging logging.basicConfig(level=logging.DEBUG,filename=’log.log’,format=’%(asctime)s - %(lineno)s - %(levelname)s - %(message)s’)logger = logging.getLogger(__name__)logger.debug(’this is debug’)logger.info(’this is info’)logger.warning(’this is warning’)logger.error(’this is error’)

python 日志模塊logging的使用場景及示例

上面我們在保存的時候,同時還添加了其他描述信息,比如執行時間,執行代碼行數,日志級別,打印消息。當然方法遠不止這些,具體請看下表

屬性名稱 格式 描述 ARGS 你不需要自己設置格式。 參數元組被合并到msg中以產生消息,或者其值被用于合并的詞典(當只有一個參數時,它是一個字典)。 asctime %(asctime)類 創建時的可讀時間。默認情況下,這是’2003-07-08 16:49:45,896’的格式(逗號之后的數字是毫秒部分)。 created %(created)的F 創建的時間(由time.time()返回)。 exc_info 你不需要自己設置格式。 異常元組(àla sys.exc_info)或,如果沒有發生異常,則為無。 filename %(filename)類 路徑名的文件名部分。 funcName %(funcName)類 包含日志記錄調用的函數的名稱。 levelname %(levelname)■ 文本消息級別(’DEBUG’,’INFO’,’WARNING’,’ERROR’,’CRITICAL’)。 levelno %(levelno)s 消息的數字記錄級別(DEBUG,INFO,WARNING,ERROR,CRITICAL)。 lineno %(lineno)d 發出日志記錄調用的源行號。 module %(module)類 模塊(文件名稱部分)。 msecs %(msecs)d 創建時的毫秒部分。 message %(message)類 記錄的消息,計算為msg%args。這是在調用Formatter.format()時設置的。 msg 你不需要自己設置格式。 在原始日志記錄調用中傳遞的格式字符串。與args合并生成消息或任意對象(請參閱使用任意對象作為消息)。 name %(name)類 用于記錄呼叫的記錄器的名稱。 pathname %(filename)類 發出日志記錄調用的源文件的完整路徑名。 process %(process)d 進程ID。 processName %(processName)類 進程名稱。 relativeCreated %(relativeCreated)d 相對于加載日志記錄模塊的時間,LogRecord創建時的時間(以毫秒為單位)。 thread %(thread)d 線程ID。 threadName %(threadName)類 線程名稱。

日志輸出進階

首先了解以下進階的方法的說明:

StreamHandler 類位于核心 logging 包,它可將日志記錄輸出發送到數據流例如 sys.stdout, sys.stderr 或任何文件類對象(或者更精確地說,任何支持 write() 和 flush() 方法的對象

FileHandler 類位于核心 logging 包,它可將日志記錄輸出到磁盤文件中。 它從 StreamHandler 繼承了輸出功能。

我們需要通過調用 Logger 類(以下稱為 loggers , 記錄器)的實例來執行日志記錄。

Logger 對象有三個常見的方法:

Logger.setLevel() 指定記錄器將處理的最低嚴重性日志消息,其中 debug 是最低內置嚴重性級別, critical 是最高內置嚴重性級別。 例如,如果嚴重性級別為 INFO ,則記錄器將僅處理 INFO 、 WARNING 、 ERROR 和 CRITICAL 消息,并將忽略 DEBUG 消息。 Logger.addHandler() 和 Logger.removeHandler() 從記錄器對象中添加和刪除處理程序對象。處理程序在以下內容中有更詳細的介紹 處理程序 。 Logger.addFilter() 和 Logger.removeFilter() 可以添加或移除記錄器對象中的過濾器。 Filter 對象 包含更多的過濾器細節。

下面示例采用添加日志記錄器對象輸出和上面一樣在控制臺打印

import logging logger = logging.getLogger(__name__)logger.setLevel(level=logging.INFO)handler = logging.StreamHandler()formatter = logging.Formatter(’%(asctime)s - %(lineno)s - %(levelname)s - %(message)s’)handler.setFormatter(formatter)logger.addHandler(handler) logger.info(’This is a log info’)logger.debug(’Debugging’)logger.warning(’Warning exists’)logger.info(’Finish’)

python 日志模塊logging的使用場景及示例

當然也同樣能保存到文件,為了演示修改了文件名稱為put.log

import logging logger = logging.getLogger(__name__)logger.setLevel(level=logging.INFO)handler = logging.FileHandler(’put.log’)formatter = logging.Formatter(’%(asctime)s - %(lineno)s - %(levelname)s - %(message)s’)handler.setFormatter(formatter)logger.addHandler(handler) logger.info(’This is a log info’)logger.debug(’Debugging’)logger.warning(’Warning exists’)logger.info(’Finish’)

python 日志模塊logging的使用場景及示例

日志雙向輸出

import logginglogger = logging.getLogger(__name__)logger.setLevel(level=logging.INFO)handler1 = logging.FileHandler(’output.log’)handler2 = logging.StreamHandler()formatter = logging.Formatter(’%(asctime)s - %(lineno)s - %(levelname)s - %(message)s’)handler1.setFormatter(formatter)handler2.setFormatter(formatter)logger.addHandler(handler1)logger.addHandler(handler2)logger.info(’This is a log info’)logger.debug(’Debugging’)logger.warning(’Warning exists’)logger.info(’Finish’)

python 日志模塊logging的使用場景及示例

python 日志模塊logging的使用場景及示例

以上就是python 日志模塊logging的使用場景及示例的詳細內容,更多關于python 日志模塊logging的使用的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
伊人精品久久| 国产亚洲一卡2卡3卡4卡新区| 日韩一区欧美二区| 国产精品久久久久av蜜臀| 日韩欧美中文字幕电影| 日韩激情啪啪| 国产精品巨作av| 精品一区二区男人吃奶| 日韩毛片视频| 欧美日韩国产精品一区二区亚洲| 亚洲在线一区| 欧美伊人影院| 国产精品久久久久蜜臀| 欧美福利在线| 激情欧美丁香| 美女被久久久| 国产美女视频一区二区| 国产一区二区三区不卡av| 激情婷婷综合| 国产日韩一区二区三免费高清 | 在线观看亚洲精品福利片| 97久久精品| 丁香六月综合| 一级成人国产| 国产+成+人+亚洲欧洲在线| 蜜臀久久精品| 亚洲久久视频| 国产精品99视频| 久久www成人_看片免费不卡| 热久久久久久| 激情自拍一区| 国产精品videosex极品| 久久伦理在线| 国产欧美日韩视频在线| 九九久久婷婷| 红杏一区二区三区| 在线精品视频一区| 国产精品2区| 野花国产精品入口| 欧美韩一区二区| 99国产精品| 久久99蜜桃| 久久国产精品99国产| 麻豆国产一区| 亚洲精品一二三**| 亚洲一级少妇| 欧美精品97| 亚洲资源网站| 久久久精品网| 久久精品国产亚洲一区二区三区| 亚洲欧美日本日韩| 亚洲精品福利电影| 国产区精品区| 蜜桃久久av| 日韩理论片av| 国产免费播放一区二区| 欧美在线影院| 成人精品久久| 欧美午夜三级| 久久亚洲图片| 免费观看不卡av| 国产成人77亚洲精品www| 日韩 欧美一区二区三区| 五月天综合网站| 日韩中文影院| 里番精品3d一二三区| 91精品丝袜国产高跟在线| 影音先锋久久| 一区二区三区四区在线看| 久久精品人人| 欧美亚洲国产一区| 岛国av免费在线观看| 国产欧美日韩一级| 日韩欧美中文字幕在线视频| 蘑菇福利视频一区播放| 国产综合婷婷| 99精品在线观看| 岛国av在线网站| 成人日韩av| 久久精品国产亚洲aⅴ| 国产区精品区| 欧美日韩99| 日本不卡的三区四区五区| 免费日本视频一区| 国产精品毛片在线看| 1000部精品久久久久久久久| 国产网站在线| 成人av三级| 美女福利一区二区三区| 国产精选在线| 久久精品影视| 不卡在线一区| 亚洲一区免费| 日本大胆欧美人术艺术动态| 在线视频日韩| 快she精品国产999| 在线观看视频免费一区二区三区| 久久大逼视频| 婷婷综合一区| 欧美在线观看天堂一区二区三区| 日韩精品免费一区二区夜夜嗨| 午夜在线精品| 日本va欧美va瓶| 国产精品久久久久久妇女| 精品视频国内| 精品成人免费一区二区在线播放| 99久久精品国产亚洲精品| 一级欧洲+日本+国产| 在线视频亚洲欧美中文| 青草综合视频| 精品一区二区三区视频在线播放| 伊人久久视频| 亚洲视频播放| 日韩精品视频网| 麻豆久久一区| 日本精品不卡| 欧美日韩国产传媒| 日韩精品一区第一页| 欧美亚洲综合视频| 红杏一区二区三区| 99久久婷婷| 蜜桃视频一区二区三区| 日韩av电影一区| 国产精品专区免费| 在线视频精品| 国产精品亚洲四区在线观看| 鲁鲁在线中文| 美女久久一区| 美女毛片一区二区三区四区最新中文字幕亚洲 | 日本中文字幕一区二区视频| 国产日韩视频| 日本精品不卡| 亚洲久草在线| 97精品一区二区| 久久国产99| 精品网站999| 91精品福利| 欧美一级一区| 久久久国产亚洲精品| 日韩精品导航| 中文在线а√天堂| 蜜臀av一区二区在线免费观看| 欧美激情网址| 亚洲一区欧美激情| 久久影视三级福利片| 欧美日韩国产高清电影| 欧美日韩一区二区三区不卡视频| 激情黄产视频在线免费观看| 欧美国产视频| 中文久久精品| 91麻豆国产自产在线观看亚洲| 蜜臀久久99精品久久久久久9| 久久香蕉网站| 视频国产精品| 欧美激情另类| 日韩av一区二| 婷婷激情一区| 国产日韩欧美一区在线| 黑丝一区二区三区| 精品国产乱码久久久| 日韩一区精品视频| 日韩av免费| 国产精品国码视频| 日韩精品一二三区| 丝袜av一区| 久久精品毛片| 国产伦精品一区二区三区千人斩| 亚洲国产日韩欧美在线| 丁香婷婷久久| 91精品国产自产在线丝袜啪| 99在线精品免费视频九九视| 精品亚洲免a| 久久狠狠久久| 亚洲影视一区二区三区| 激情欧美丁香| 成人福利av| 麻豆国产精品| 91伊人久久| 亚洲精品乱码日韩| 夜夜嗨一区二区三区| 四虎884aa成人精品最新| 精品视频91| 国产亚洲高清在线观看| 男女男精品网站| 一区视频在线| 999久久久91| 国产精品精品国产一区二区| 国产精品啊啊啊| 国产日韩一区| 日本91福利区| 久久aⅴ国产紧身牛仔裤| 久久精品成人| 在线天堂中文资源最新版| 免费看久久久| 国产精品亚洲人成在99www| 综合激情一区| 野花国产精品入口| 亚洲免费黄色| 国产精品毛片在线| 欧美日韩视频一区二区三区|