這篇文章為大家?guī)碛嘘P(guān)Python中l(wèi)ogging模塊操作的詳細(xì)介紹。大部分???知識點(diǎn)都是大家經(jīng)常用到的,為此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為沁縣企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,沁縣網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。python中刪除非空的目錄
>>> os.makedirs('dir1/dir2')
>>> os.listdir('dir1')
['dir2']
>>> shutil.rmtree('dir1')
>>> os.listdir()
[]
在上面的示例代碼中,我先創(chuàng)建了一個(gè)兩級目錄 dir1/dir2,我使用shutil.rmtree()函數(shù)來刪除,可以看到可以直接刪除成功。它的用法就是直接給出對應(yīng)的目錄路徑就可以了。
今天我要介紹的是python提供的日志記錄模塊logging,說到日志,相信不管是做開發(fā)的同學(xué)還是做日志的同學(xué)都知道,這個(gè)功能是非常重要的。因?yàn)閺娜罩纠锩嫖覀兛梢宰粉櫿麄€(gè)程序的運(yùn)行過程,查看報(bào)錯(cuò)信息,進(jìn)行故障分析等等,應(yīng)用可以說是非常廣泛。說到這里,學(xué)過Python基礎(chǔ)的同學(xué)可能會(huì)問,Python不是有print函數(shù)可以用來輸出調(diào)試信息嗎?
沒錯(cuò),print函數(shù)確實(shí)可以用來輸出,但是在實(shí)際的生產(chǎn)環(huán)境代碼中,日志需要?jiǎng)澐謱?yīng)的級別,根據(jù)不同的目的輸出不同數(shù)量的日志。例如排錯(cuò)的時(shí)候,就需要更詳細(xì)一點(diǎn)的日志,而正常運(yùn)行的時(shí)候,輸出少量日志即可。這些功能都是print函數(shù)無法滿足的,而Python提供的logging庫則可以滿足需求,話不多說。我們來看這個(gè)模塊的一些知識。
剛我們說到,不同的目的需要不同級別的日志。在logging模塊中,將日志劃分為7個(gè)級別,分別是:
當(dāng)你把日志級別設(shè)置為其中一個(gè)時(shí),你在程序中進(jìn)行輸出的時(shí)候,只有輸出位置的信息級別高于默認(rèn)配置,才運(yùn)行讓你把日志信息輸出到文件或者控制臺(tái)。也就是說,默認(rèn)值是30,你輸出位置的級別是30,40,50,可以輸出,20,10,0級別的信息不允許輸出。
當(dāng)你需要進(jìn)行程序調(diào)試的時(shí)候,把日志級別改為DEBUG,那么能夠輸出的日志數(shù)值大于10就夠了,那么可以輸出的信息就更多,有利于調(diào)試。
我們在各個(gè)應(yīng)用程序的日志里看到的信息一般都會(huì)有一些標(biāo)準(zhǔn)格式,常見的是:
什么時(shí)候(日期 時(shí)間) 誰(哪個(gè)程序) 做了什么操作 導(dǎo)致了什么后果
而logging模塊中,也可以定制這樣的日志格式,它是通過不同格式的字符串來實(shí)現(xiàn)的,我們看一下常用的字符串有哪些。
基本知識就這些,我們來看一個(gè)簡單的示例:
import logging
# 格式化字符串
FORMAT = '%(asctime)-15s\t Log out info : %(thread)d %(threadName)s %(message)s'
# 使用格式化字符串來初始化日志模塊輸出的日志格式
logging.basicConfig(format=FORMAT)
# 輸出日志信息
logging.info("This is an info message")
logging.warning("This is a warning message")
代碼執(zhí)行后的輸出結(jié)果是
2020-02-27 20:40:10,701 Log out info : 140552040826688 MainThread This is an warning message
我們在上面日志級別里說到,WARNING級別是默認(rèn)級別,而低于這個(gè)級別的無法輸出。logging也為每個(gè)級別提供了對應(yīng)的函數(shù),例如這里代碼中的logging.info和logging.warning,就是用來輸出不同級別的日志信息。因此只有l(wèi)ogging.warning的信息可以輸出,而logging.info級別因?yàn)榈陀赪ARNING,不允許輸出。輸出的內(nèi)容包括我們定義的日期、線程ID,線程名稱,自定義的日志信息。
因此,在你的代碼中,在異常處理的時(shí)候,使用WARNING級別的信息,普通的調(diào)試信息則一般建議使用INFO級別來進(jìn)行輸出。
當(dāng)默認(rèn)日志級別是WARNING的時(shí)候,INFO級別是無法輸出的,那么如果我們需要對程序進(jìn)行調(diào)試的時(shí)候怎么辦呢?當(dāng)然是修改默認(rèn)的日志級別了,默認(rèn)的日志級別可以在日志模塊初始化的時(shí)候進(jìn)行設(shè)置,格式是:
logging.basicConfig(format=FROMAT, level=logging.INFO)
這樣就可以把日志默認(rèn)級別改為INFO,如果還想輸出更多的信息進(jìn)行調(diào)試,可以改為更低的DEBUG級別。但是同時(shí)別忘了,在你的程序中,輸出的日志定義的格式也需要分級的。
上面格式化字符串中我們看到,默認(rèn)的日期格式是YYYY-mm-dd HH:MM:SS,sss,而每個(gè)開發(fā)人員可能習(xí)慣不一樣,或者說每個(gè)公司的標(biāo)準(zhǔn)不一樣,這個(gè)時(shí)候可能就需要修改日期格式了。這個(gè)參數(shù)的修改也是在日志模塊初始化的時(shí)候進(jìn)行,用法是:
logging.basicConfig(format=FORMAT, datefmt='%Y/%m/%d %I:%M:%S')
在上面的示例中,我們將輸出的日期改為了上面的格式。這里%Y字樣的字符串,是日期格式化的內(nèi)容,
2020/02/27 08:43:22 Log out info : 140034488715072 MainThread This is an warning message
上面的基本配置中,沒有配置是否要把日志輸出到文件,那么它默認(rèn)就會(huì)把文件輸出到控制臺(tái)。必須指定輸出文件的位置,才會(huì)自動(dòng)輸出到文件中。配置格式如下:
logging.basicConfig(format=FORMAT, filename='/var/log/demo.log')
這樣配置以后,日志就會(huì)自動(dòng)輸出到/var/log/demo.log這個(gè)文件中,這里有幾個(gè)需要注意的地方:
關(guān)于Python中l(wèi)ogging模塊的操作就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
分享文章:Python中l(wèi)ogging模塊的操作-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.rwnh.cn/article4/cecsoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、小程序開發(fā)、App開發(fā)、品牌網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容