bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Python中logging模塊的操作-創新互聯

這篇文章為大家帶來有關Python中logging模塊操作的詳細介紹。大部分???知識點都是大家經常用到的,為此分享給大家做個參考。一起跟隨小編過來看看吧。

成都創新互聯長期為1000+客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為沁縣企業提供專業的成都網站設計、網站制作,沁縣網站改版等技術服務。擁有10余年豐富建站經驗和眾多成功案例,為您定制開發。

python中刪除非空的目錄

>>> os.makedirs('dir1/dir2')
>>> os.listdir('dir1')
['dir2']
>>> shutil.rmtree('dir1')
>>> os.listdir()
[]

在上面的示例代碼中,我先創建了一個兩級目錄 dir1/dir2,我使用shutil.rmtree()函數來刪除,可以看到可以直接刪除成功。它的用法就是直接給出對應的目錄路徑就可以了。

今天我要介紹的是python提供的日志記錄模塊logging,說到日志,相信不管是做開發的同學還是做日志的同學都知道,這個功能是非常重要的。因為從日志里面我們可以追蹤整個程序的運行過程,查看報錯信息,進行故障分析等等,應用可以說是非常廣泛。說到這里,學過Python基礎的同學可能會問,Python不是有print函數可以用來輸出調試信息嗎?
沒錯,print函數確實可以用來輸出,但是在實際的生產環境代碼中,日志需要劃分對應的級別,根據不同的目的輸出不同數量的日志。例如排錯的時候,就需要更詳細一點的日志,而正常運行的時候,輸出少量日志即可。這些功能都是print函數無法滿足的,而Python提供的logging庫則可以滿足需求,話不多說。我們來看這個模塊的一些知識。

日志級別

剛我們說到,不同的目的需要不同級別的日志。在logging模塊中,將日志劃分為7個級別,分別是:

  • CRITICAL,災難級別,對應數值50
  • ERROR,錯誤級別,對應數值40
  • WARNING,警告級別,對應數值30(默認值)
  • INFO,信息級別,對應數值20
  • DEBUG,調試級別,對應數值10
  • NOTEST,非測試,對應數值0

當你把日志級別設置為其中一個時,你在程序中進行輸出的時候,只有輸出位置的信息級別高于默認配置,才運行讓你把日志信息輸出到文件或者控制臺。也就是說,默認值是30,你輸出位置的級別是30,40,50,可以輸出,20,10,0級別的信息不允許輸出。
當你需要進行程序調試的時候,把日志級別改為DEBUG,那么能夠輸出的日志數值大于10就夠了,那么可以輸出的信息就更多,有利于調試。

格式化字符串

我們在各個應用程序的日志里看到的信息一般都會有一些標準格式,常見的是:
什么時候(日期 時間) 誰(哪個程序) 做了什么操作  導致了什么后果
而logging模塊中,也可以定制這樣的日志格式,它是通過不同格式的字符串來實現的,我們看一下常用的字符串有哪些。

  • %(message)s,日志的內容,需要用戶自己提供信息字符串message
  • %(asctime)s,日志的時間,默認格式是YYYY-mm-dd HH:MM:SS,sss,精確到毫秒
  • %(funcName)s,日志調用的位置,即日志在哪個函數里被調用。便于排錯
  • %(levelno)s,日志級別,使用INFO,DEBUG這樣的值
  • %(lineno)s,日志調用的代碼行數,即在哪一行代碼處報錯,便于排錯。
  • %(module)s,日志在哪個模塊被調用,便于排錯
  • %(process)d / %(thread)d,進程/線程 ID,即調用日志模塊的進程/線程ID。
  • %(processName)s / %(threadName)s,進程/ 線程名稱,即調用日志模塊的進程/線程ID。

基本知識就這些,我們來看一個簡單的示例:

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")

代碼執行后的輸出結果是

2020-02-27 20:40:10,701  Log out info : 140552040826688 MainThread This is an warning message

我們在上面日志級別里說到,WARNING級別是默認級別,而低于這個級別的無法輸出。logging也為每個級別提供了對應的函數,例如這里代碼中的logging.info和logging.warning,就是用來輸出不同級別的日志信息。因此只有logging.warning的信息可以輸出,而logging.info級別因為低于WARNING,不允許輸出。輸出的內容包括我們定義的日期、線程ID,線程名稱,自定義的日志信息。

因此,在你的代碼中,在異常處理的時候,使用WARNING級別的信息,普通的調試信息則一般建議使用INFO級別來進行輸出。

修改日志級別和日期格式

當默認日志級別是WARNING的時候,INFO級別是無法輸出的,那么如果我們需要對程序進行調試的時候怎么辦呢?當然是修改默認的日志級別了,默認的日志級別可以在日志模塊初始化的時候進行設置,格式是:

logging.basicConfig(format=FROMAT, level=logging.INFO)

這樣就可以把日志默認級別改為INFO,如果還想輸出更多的信息進行調試,可以改為更低的DEBUG級別。但是同時別忘了,在你的程序中,輸出的日志定義的格式也需要分級的。

上面格式化字符串中我們看到,默認的日期格式是YYYY-mm-dd HH:MM:SS,sss,而每個開發人員可能習慣不一樣,或者說每個公司的標準不一樣,這個時候可能就需要修改日期格式了。這個參數的修改也是在日志模塊初始化的時候進行,用法是:

logging.basicConfig(format=FORMAT, datefmt='%Y/%m/%d %I:%M:%S')

在上面的示例中,我們將輸出的日期改為了上面的格式。這里%Y字樣的字符串,是日期格式化的內容,

  • %Y表示YYYY
  • %m表示mm
  • %d表示dd
  • %I表示HH格式,但是是12小時,24小時使用%H
  • %M表示MM格式分鐘
  • %S表示SS格式秒
    最終的輸出結果就是:
    2020/02/27 08:43:22  Log out info : 140034488715072 MainThread This is an warning message
輸出日志到文件

上面的基本配置中,沒有配置是否要把日志輸出到文件,那么它默認就會把文件輸出到控制臺。必須指定輸出文件的位置,才會自動輸出到文件中。配置格式如下:

logging.basicConfig(format=FORMAT,  filename='/var/log/demo.log')

這樣配置以后,日志就會自動輸出到/var/log/demo.log這個文件中,這里有幾個需要注意的地方:

  1. 需要保證程序對這個日志文件有讀寫權限
  2. 盡量使用絕對路徑,使用相對路徑,可能會因為程序執行的位置不同,導致日志文件出現在不同的位置
  3. 還有一個filemode參數設置日志文件打開方式,默認值是'a',即追加的方式。

關于Python中logging模塊的操作就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果喜歡這篇文章,不如把它分享出去讓更多的人看到。

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

分享文章:Python中logging模塊的操作-創新互聯
URL網址:http://vcdvsql.cn/article4/cecsoe.html

成都網站建設公司_創新互聯,為您提供網站收錄、小程序開發App開發、品牌網站建設營銷型網站建設、軟件開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都seo排名網站優化