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

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

Python 程序員必須掌握的日志記錄

瀏覽:48日期:2022-07-13 17:38:16

寫在之前

在我們的現實生活中,「日志記錄」其實是一件非常重要的事情,比如銀行的轉賬記錄,汽車的行車記錄儀記錄行駛過程中的一切,如果出現了什么問題,我們可以通過「日志記錄」來搞清楚到底發生了什么事情。

除了在生活中,在日常的系統開發以及調試等過程中,記錄日志同樣是一件很重要的事情。很多編程初學者并沒有「記錄日志」的習慣,認為記錄日志是一件可有可無的事情,出現問題的時候只要使用 print 函數打印一下程序的中間結果即可,真是 too young too naive。只是 print 的話對于簡單的腳本程序來說或許可行,可是到了碰到復雜的系統,你如果還是只用 print 這種方式的話,你會看到大量的消息,看到吐也不一定能找到其中有用的消息。

「日志」是一個系統的重要組成部分,用來記錄用戶操作、系統運行狀態和錯誤信息,它的好壞直接影響到系統出現問題時定位的速度,有日志記錄,我們可以在服務崩潰的時候很快的通過查看日志來發現問題出現的地方,同樣也可以通過對日志的觀察和分析,提前發現系統可能存在的風險。

Python 的標準日志模塊

上面我們說了「日志」是如此的重要,作為無所不能的 Python 當然也有日志相關的功能,Python 標準庫中提供了 logging 模塊供我們使用。在最簡單的使用中,默認情況下 logging 將日志打印到屏幕終端,我們可以直接導入 logging 模塊,然后調用 debug,info,warn,error 和 critical 等函數來記錄日志,默認日志的級別為 warning,級別比 warning 高的日志才會被顯示(critical > error > warning > info > debug),「級別」是一個邏輯上的概念,用來區分日志的重要程度。

import logginglogging.debug(’debug message’)logging.info('info message')logging.warn(’warn message’)logging.error('error message')logging.critical(’critical message’)

上述代碼的執行結果如下所示:

WARNING:root:warn messageERROR:root:error messageCRITICAL:root:critical message

我在上面說過,用 print 的話會產生大量的信息,從而很難從中找到真正有用的信息。而 logging 中將日志分成不同的級別以后,我們在大多數時間只保存級別比較高的日志信息,從而提高了日志的性能和分析速度,這樣我們就可以很快速的從一個很大的日志文件里找到錯誤的信息。

配置日志格式

我們在用 logging 來記錄日志之前,先來進行一些簡單的配置:

import logginglogging.basicConfig(filename= ’test.log’, level= logging.INFO)logging.debug(’debug message’)logging.info('info message')logging.warn(’warn message’)logging.error('error message')logging.critical(’critical message’)

上面的例子中,我是用 basicConfig 對日志進行了簡單的配置,其實我們還可以進行更為復雜些的配置,在此之前,我們先來了解一下 logging 中的幾個概念:

Logger:日志記錄器,是應用程序中可以直接使用的接口。 Handler:日志處理器,用以表明將日志保存到什么地方以及保存多久。 Formatter:格式化,用以配置日志的輸出格式。

上述三者的關系是:一個 Logger 使用一個 Handler,一個 Handler 使用一個 Formatter。那么概念我們知道了,該如何去使用它們呢?我們的 logging 中有很多種方式來配置文件,簡單的就用上面所說的 basicConfig,對于比較復雜的我們可以將日志的配置保存在一個配置文件中,然后在主程序中使用 fileConfig 讀取配置文件。

基本的知識我們知道了,下面我們來做一個小的題目:日志文件保存所有 debug 及其以上級別的日志,每條日志中要有打印日志的時間,日志的級別和日志的內容。請先自己嘗試著思考一下,如果你已經思考完畢請繼續向下看:

import logginglogging.basicConfig( level= logging.DEBUG, format = ’%(asctime)s : %(levelname)s : %(message)s’, filename= 'test.log')logging.debug(’debug message’)logging.info('info message')logging.warn(’warn message’)logging.error('error message')logging.critical(’critical message’)

上述代碼的一次運行結果如下:

2018-10-19 22:50:35,225 : DEBUG : debug message2018-10-19 22:50:35,225 : INFO : info message2018-10-19 22:50:35,225 : WARNING : warn message2018-10-19 22:50:35,225 : ERROR : error message2018-10-19 22:50:35,225 : CRITICAL : critical message

我剛剛在上面說過,對于比較復雜的我們可以將日志的配置保存在一個配置文件中,然后在主程序中使用 fileConfig 讀取配置文件。下面我們就來看一個典型的日志配置文件(配置文件名為 logging.conf):

[loggers]keys = root[handlers]keys = logfile[formatters]keys = generic[logger_root]handlers = logfile[handler_logfile]class = handlers.TimedRotatingFileHandlerargs = (’test.log’, ’midnight’, 1, 10)level = DEBUGformatter = generic[formatter_generic]format = %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s] %(message)s

在上述的日志配置文件中,首先我們在 [loggers] 中聲明了一個叫做 root 的日志記錄器(logger),在 [handlers] 中聲明了一個叫 logfile 的日志處理器(handler),在 [formatters] 中聲明了一個名為 generic 的格式化(formatter)。之后在 [logger_root] 中定義 root 這個日志處理器(logger) 所使用的日志處理器(handler) 是哪個,在 [handler_logfile] 中定義了日志處理器(handler) 輸出日志的方式、日志文件的切換時間等。最后在 [formatter_generic] 中定義了日志的格式,包括日志的產生時間,級別、文件名以及行號等信息。

有了上述的配置文件以后,我們就可以在主代碼中使用 logging.conf 模塊的 fileConfig 函數加載日志配置:

import loggingimport logging.configlogging.config.fileConfig(’logging.conf’)logging.debug(’debug message’)logging.info('info message')logging.warn(’warn message’)logging.error('error message')logging.critical(’critical message’)

上述代碼的運行一次的結果如下所示:

2018-10-19 23:00:02,809 WARNI [root:8] warn message2018-10-19 23:00:02,809 ERROR [root:9] error message2018-10-19 23:00:02,809 CRITI [root:10] critical message

寫在之后

正如標題中所說的那樣,我認為「日志記錄」是每個 Python 程序員必須要知道且學會的東西,也是每個程序員必須具備的意識。如果你之前沒有使用過日志亦或者說不知道該怎么去使用日志記錄,這篇文章我相信會給你帶來一些幫助。

Python 的日志庫設計之好,用起來之靈活,可以說是 Python 標準庫中相當優秀的存在。當然上面我們所說的只是 Python 日志庫中很少的一部分,更多的操作和內容還需要你在今后的學習和實踐中自己去發掘和運用。

The end。

以上就是Python 程序員必須掌握的日志記錄的詳細內容,更多關于python 日志的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩视频久久| 久久国内精品自在自线400部| 免费观看在线色综合| 999国产精品| 99热国内精品| 国产亚洲精品v| 日本 国产 欧美色综合| 亚洲作爱视频| 蜜臀精品一区二区三区在线观看 | 九一成人免费视频| 蜜桃av一区二区| 99视频+国产日韩欧美| 日韩中文欧美在线| 国产视频一区二区在线播放| 国产毛片一区二区三区| 麻豆中文一区二区| 国产高清不卡| 在线成人直播| 国产日韩一区二区三免费高清| 久久精品国产网站| 91tv亚洲精品香蕉国产一区| 亚洲成人免费| 日本成人在线视频网站| 精品久久久中文字幕| 日韩精品免费一区二区三区| 中文在线资源| 一二三区精品| 狂野欧美性猛交xxxx| 亚洲激情中文| 欧美精品导航| 夜夜嗨一区二区| 久久这里只有| 美美哒免费高清在线观看视频一区二区| 91麻豆精品激情在线观看最新 | 亚洲欧美日本国产 | 影音先锋国产精品| 国产精选久久| 国产综合亚洲精品一区二| 亚洲自拍另类| 97在线精品| 日本h片久久| 在线日韩欧美| 日韩电影免费在线观看| 日韩超碰人人爽人人做人人添| 欧美/亚洲一区| 日韩精品电影| 免费一级欧美片在线观看网站| av一区二区高清| 激情不卡一区二区三区视频在线| 在线精品视频一区| 亚洲国产福利| 国产精品第十页| 日韩黄色在线观看| 亚洲综合日韩| 午夜国产一区二区| 在线日韩中文| 日韩成人亚洲| 国产一区国产二区国产三区| 色天使综合视频| 精品视频自拍| 久久超碰99| 国产精品99久久久久久董美香| 蜜桃一区二区三区在线观看| 国产亚洲在线观看| 99久久久久国产精品| 欧美a一区二区| 91麻豆精品| 国产视频网站一区二区三区| 亚洲精品高潮| 欧美日一区二区三区在线观看国产免| 亚洲午夜久久| 亚洲3区在线| 亚洲精品一二| 丝袜亚洲精品中文字幕一区| 日韩视频一区| 日韩视频一区二区三区在线播放免费观看| 久久久精品网| 午夜久久美女| 中文字幕av一区二区三区人| 综合视频一区| 亚洲精品第一| 欧美日韩黄网站| 国产中文字幕一区二区三区| 99久久婷婷| 久久av在线| 蜜桃伊人久久| 国产探花一区在线观看| 国产在线日韩精品| 国产精品99免费看| 亚洲精品在线国产| 久久精品九色| 欧美91福利在线观看| 久久亚洲风情| 美女视频黄久久| 在线日韩一区| 日本91福利区| 成人久久久久| 日韩国产成人精品| 麻豆成全视频免费观看在线看| 2023国产精品久久久精品双| 午夜性色一区二区三区免费视频| 国产精品久久久免费| 久久影视一区| 麻豆精品在线播放| 亚洲一区网站| 国产成人在线中文字幕| 国产一区91| 日韩一区二区在线免费| 亚洲精品一级二级三级| 999久久久免费精品国产| 在线视频精品| 97精品中文字幕| 国产欧美日韩一级| 蜜臀av在线播放一区二区三区| 国产在线看片免费视频在线观看| 久久国产成人| 亚洲二区精品| 日韩中文首页| 国产精品入口久久| 视频一区二区欧美| 久久中文字幕av| 国产一区不卡| 美女久久久精品| 欧美日一区二区在线观看| 老色鬼久久亚洲一区二区| 蜜臀av免费一区二区三区| 日韩精品久久久久久| aⅴ色国产欧美| 国产伊人精品| 亚洲高清av| 欧洲激情综合| 在线 亚洲欧美在线综合一区| 久久久久久网| 国产一区二区三区日韩精品| 欧美日本久久| 国产欧美大片| 久久精品国产成人一区二区三区| 日本久久一区| 久久99久久人婷婷精品综合| 免费一区二区三区在线视频| 国产精品成人国产| 色狠狠一区二区三区| 亚洲人成在线影院| 日韩av中文字幕一区二区三区| 日本高清久久| 国产精品18| 免费在线观看成人| 日韩一区二区久久| 在线免费观看亚洲| 亚洲一级淫片| 免费一级欧美片在线观看网站| 色爱综合网欧美| 亚洲国产专区| 亚洲精品综合| 免费亚洲一区| 蜜臀久久精品| 伊人久久在线| 久久不射中文字幕| 国产亚洲一区二区三区啪| 久久久久伊人| 在线国产一区二区| 久久精品凹凸全集| 欧美91福利在线观看| 国产精品久久久久久久免费软件| 色婷婷亚洲mv天堂mv在影片| 图片区亚洲欧美小说区| 亚洲精品一区二区在线播放∴| 国产伦乱精品| 婷婷综合亚洲| 国产一区二区三区亚洲综合| 免费欧美日韩| 日韩av成人高清| 久久精品主播| 欧美激情99| 日韩欧美四区| 成人av二区| 久久久久久色| 精品一区二区三区亚洲| 欧美日韩视频| 水蜜桃久久夜色精品一区| 亚洲一区有码| 999国产精品| 精品视频一区二区三区在线观看 | 国产精品嫩草影院在线看| 尤物精品在线| 亚洲午夜视频| 福利精品在线| 国产伦理一区| 日本中文字幕视频一区| 久久国产日本精品| 国产成人免费| 国产精品mv在线观看| 亚洲毛片在线免费| 亚洲激情国产| 色偷偷偷在线视频播放| 久久国产麻豆精品| 亚洲精品亚洲人成在线观看| 性色一区二区| 国产毛片久久| 美女久久网站|