<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在實際應用中,紀錄檔檔案十分重要,通過紀錄檔檔案,我們知道程式執行的細節;同時,當程式出問題時,我們也可以通過紀錄檔快速定位問題所在。在我們寫程式時,也可以藉助 logging 模組的輸出資訊來偵錯程式碼。
但是很多人還是在程式中使用print()函數來輸出一些資訊,比如:
print 'Start reading database' records = model.read_recrods() print '# records', records print 'Updating record ...' model.update_records(records) print 'done'
這樣用的話缺點很明顯,當程式寫好執行時,我們要把這些print()函數刪掉,在簡單的的程式中用還行,當程式比較複雜時,這個辦法很低效。
如果使用logging
模組,看看效果
import logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) logger.info('Start reading database') # read database here records = {'john': 55, 'tom': 66} logger.debug('Records: %s', records) logger.info('Updating records ...') # update records here logger.info('Finish updating records')
執行結果如下:
INFO:__main__:Start reading database INFO:__main__:Updating records ... INFO:__main__:Finish updating records
你也許會問,這和print()
函數有什麼區別呢?區別就在於,logging模組可以通過改變level來控制一些語句是否被輸出,比如當我們把level改成DEBUG級別:
logging.basicConfig(level=logging.DEBUG)
得到輸出如下:
INFO:__main__:Start reading database
DEBUG:__main__:Records: {'john': 55, 'tom': 66}
INFO:__main__:Updating records ...
INFO:__main__:Finish updating records
logging
模組是python自帶的一個包,因此在使用的時候,不必安裝,只需要import即可。有5個level,分別是debug,主要是檢視一下程式執行的資訊,一般是偵錯程式要看的資訊;info,是我們看程式是否如預料執行的資訊;warn,意料之外的,但是不影響程式執行;error
和critical
就是一些比較嚴重的問題,會影響程式執行。預設leval是warn,這個時候debug級別和info級別就不會被輸出到紀錄檔裡了。如果想要看到這些資訊,就需要進行一些設定。
我們主要呼叫basicConfig(***kwargs*)
這個函數對logging
進行設定。
常用的引數如下:
level
:主要調整logging的級別filename
:輸出紀錄檔的路徑filemode
:直接寫入還是追加寫入format
:輸出的格式我們通過調整format,可以輸出我們想要的格式,比如:
import logging logging.basicConfig(format='%(asctime)s - %(message)s', datefmt='%d-%b-%y %H:%M:%S') logging.warning('Admin logged out')
結果是:
12-Jul-18 20:53:19 - Admin logged out
這就是在format
引數中設定了時間的,所以得到了時間,我們可以輸出多種想要的資訊
總結:
本文主要介紹了logging
模組的基礎用法,除非是自己寫的小指令碼中我們使用print()函數,其他情況下最好還是用logging模組來列印資訊,輸出紀錄檔吧。
到此這篇關於 Python 中 logging 模組使用詳情的文章就介紹到這了,更多相關 Python 中 logging 模組使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45