您好,登錄后才能下訂單哦!
這篇文章主要講解了“ Python中logging模塊如何使用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ Python中logging模塊如何使用”吧!
在實際應用中,日志文件十分重要,通過日志文件,我們知道程序運行的細節;同時,當程序出問題時,我們也可以通過日志快速定位問題所在。在我們寫程序時,也可以借助 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
參數中設置了時間的,所以得到了時間,我們可以輸出多種想要的信息
感謝各位的閱讀,以上就是“ Python中logging模塊如何使用”的內容了,經過本文的學習后,相信大家對 Python中logging模塊如何使用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。