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

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

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

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

他們的使用場景請看下表

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

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

名稱 何時使用 等級 DEBUG 細節(jié)信息,僅當診斷問題時適用。 10 INFO 確認程序按預(yù)期運行 20 WARNING 表明有已經(jīng)或即將發(fā)生的意外(例如:磁盤空間不足)。程序仍按預(yù)期進行 30 ERROR 由于嚴重的問題,程序的某些功能已經(jīng)不能正常執(zhí)行 40 CRITICAL 嚴重的錯誤,表明程序已不能繼續(xù)執(zhí)行 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的使用場景及示例

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

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

日志輸出進階

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

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

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

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

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

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

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

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的使用場景及示例的詳細內(nèi)容,更多關(guān)于python 日志模塊logging的使用的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
午夜久久黄色| 色婷婷狠狠五月综合天色拍| 韩国久久久久久| 麻豆精品在线| 国产精品红桃| 精品三级av| 91麻豆国产自产在线观看亚洲| 97久久精品| 欧美亚洲自偷自偷| 国产精品4hu.www| 91欧美日韩| 欧洲亚洲一区二区三区| 999国产精品999久久久久久| 999国产精品| 国产亚洲精品v| 天堂va在线高清一区| 日韩一区二区三区在线看| 视频一区中文字幕精品| 久久国产麻豆精品| 精品久久亚洲| 亚洲第一精品影视| 综合亚洲视频| 精品国产亚洲一区二区三区在线| 日韩av有码| 国产视频一区欧美| 国产精品成人**免费视频| 欧美国产偷国产精品三区| 亚洲爱爱视频| 日韩国产欧美在线视频| 激情综合五月| 蜜臀国产一区二区三区在线播放| 日韩不卡一区二区三区| 国产精品视频一区二区三区 | 在线精品视频在线观看高清| 日韩精品第二页| 婷婷综合激情| 成人一区而且| 成人精品中文字幕| 亚洲色图国产| 日韩精品欧美激情一区二区| 中文视频一区| 日韩在线观看| 久久久91麻豆精品国产一区| 亚洲一区中文| 六月丁香综合在线视频| 亚洲美女91| 国产亚洲一级| 激情偷拍久久| 欧美不卡高清一区二区三区| 国产精品久久久一区二区| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产一区二区三区探花| 日韩一区二区三区免费视频| 久久久精品久久久久久96 | 国产精品毛片久久久| 首页亚洲欧美制服丝腿| 久久久五月天| 在线精品亚洲欧美日韩国产| 麻豆一区二区99久久久久| 欧美片第1页综合| 亚洲制服欧美另类| 视频一区二区国产| 久久亚洲美女| 亚洲最新av| 欧美一级二区| 国产精品日本一区二区三区在线| 国产麻豆精品| 黄色成人91| 久久亚洲电影| 国产精品伊人| 成人污污视频| 视频福利一区| 美女久久网站| 国产欧美在线观看免费| 久久av电影| 欧美成人基地 | 午夜欧美在线| 在线亚洲精品| 日本精品在线播放| 国产精品美女午夜爽爽| 精品精品99| 亚洲午夜精品久久久久久app| 欧美日韩中文字幕一区二区三区| 久久久久国产精品一区三寸| 午夜久久影院| 国产激情欧美| 激情综合亚洲| 国产人成精品一区二区三| 中文在线资源| 中文字幕日韩欧美精品高清在线| 日韩精品视频网| 91av亚洲| 久久国产乱子精品免费女| 日韩欧美二区| 一区二区三区网站| 国产成人1区| 亚洲a成人v| 欧美综合另类| 久久香蕉网站| 亚洲日本免费电影| 成人免费电影网址| 国产精品99久久免费| 亚洲国产一区二区三区在线播放| 国产精品白丝久久av网站| 亚洲成人av观看| 国产精品久久久久久久久久白浆 | av亚洲一区二区三区| 日韩精品中文字幕吗一区二区| 国产精品久久久久久久免费观看 | 丝袜美腿亚洲色图| 福利在线一区| 国产一精品一av一免费爽爽| 在线看片不卡| 久久中文字幕av| 亚洲女同av| 精品深夜福利视频| 久久wwww| 久久a爱视频| 欧美激情福利| 久久不见久久见国语| 亚洲欧洲美洲av| 国产精品一站二站| 国产欧美日韩精品高清二区综合区 | 欧美精品激情| 亚洲一级高清| 欧美 日韩 国产精品免费观看| 国精品产品一区| 欧美成人精品一级| 免费在线亚洲欧美| 国产精品久久久久77777丨| 久久精品97| 国产精品日本一区二区不卡视频| 国产情侣一区在线| 国产精品男女| 日本一区二区免费高清| 日韩欧美精品| 不卡中文一二三区| 99国产精品视频免费观看一公开| 99国产精品久久久久久久成人热 | 玖玖玖国产精品| 亚洲综合图色| 国产免费av国片精品草莓男男| 国产日产高清欧美一区二区三区| 国产欧美大片| 桃色一区二区| 亚洲大全视频| 亚洲精品日韩久久| 国产精品久久久久久模特| 中文字幕系列一区| 高清精品久久| 免费精品视频| 日韩精品一区二区三区中文在线 | 国产综合婷婷| 中文av在线全新| 久久久精品日韩| 成人精品视频| 成人国产综合| 日韩一级不卡| 国产精品videossex久久发布| 激情黄产视频在线免费观看| 欧美日韩国产在线观看网站| 香蕉久久一区| 亚洲91视频| 欧美成人精品午夜一区二区| 精品一区在线| 久久精品国产网站| 亚洲欧美网站| 久久香蕉网站| 日韩精品导航| 伊人精品视频| 最近高清中文在线字幕在线观看1| 亚洲一区二区成人| 日产精品一区二区| 国产一卡不卡| 日韩制服丝袜先锋影音| 一本大道色婷婷在线| 国产精品一级在线观看| 久久亚洲风情| 欧美在线影院| 免费不卡中文字幕在线| 国产精品久久国产愉拍| 婷婷视频一区二区三区| 色综合www| 秋霞影院一区二区三区| 欧美亚洲日本精品| 你懂的亚洲视频| 日本午夜免费一区二区| 亚洲三级国产| 男女激情视频一区| 亚洲一区二区三区四区五区午夜| 国产综合色区在线观看| 91综合视频| 韩国精品主播一区二区在线观看| 免费在线观看一区| 国产精品va视频| 久久av资源| 国产精品蜜芽在线观看| 久久久国产精品网站| 色爱综合网欧美| 伊人久久高清|