新聞中心
1.為什么要用logging模塊
但是很多人還是在程序中使用print()函數(shù)來輸出一些信息,比如:

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比高陽網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式高陽網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務覆蓋高陽地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
print 'Start reading database'
records = model.read_recrods()
print '# records', records
print 'Updating record ...'
model.update_records(records)
print 'done'
這樣用的話缺點很明顯,當程序?qū)懞眠\行時,我們要把這些print()函數(shù)刪掉,在簡單的的程序中用還行,當程序比較復雜時,這個辦法很低效。
如果使用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')
運行結(jié)果如下:
INFO:__main__:Start reading database
INFO:__main__:Updating records ...
INFO:__main__:Finish updating records
你也許會問,這和print()函數(shù)有什么區(qū)別呢?區(qū)別就在于,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
2.logging模塊介紹
logging 模塊是python自帶的一個包,因此在使用的時候,不必安裝,只需要import即可。有5個level,分別是debug,主要是查看一下程序運行的信息,一般是調(diào)試程序要看的信息;info,是我們看程序是否如預料執(zhí)行的信息;warn,意料之外的,但是不影響程序運行;error和critical就是一些比較嚴重的問題,會影響程序運行。默認leval是warn,這個時候debug級別和info級別就不會被輸出到日志里了。如果想要看到這些信息,就需要進行一些設(shè)置。
3.基礎(chǔ)設(shè)置
我們主要調(diào)用basicConfig(***kwargs*)這個函數(shù)對logging進行設(shè)置。
常用的參數(shù)如下:
- level:主要調(diào)整logging的級別
- filename:輸出日志的路徑
- filemode:直接寫入還是追加寫入
- format:輸出的格式
我們通過調(diào)整format,可以輸出我們想要的格式,比如:
import logging
logging.basicConfig(format='%(asctime)s - %(message)s', datefmt='%d-%b-%y %H:%M:%S')
logging.warning('Admin logged out')
結(jié)果是:
12-Jul-18 20:53:19 - Admin logged out
這就是在format參數(shù)中設(shè)置了時間的,所以得到了時間,我們可以輸出多種想要的信息
總結(jié):
本文主要介紹了logging模塊的基礎(chǔ)用法,除非是自己寫的小腳本中我們使用print()函數(shù),其他情況下最好還是用logging模塊來打印信息,輸出日志吧。
網(wǎng)頁題目:Python中Logging模塊使用詳情
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/cdgcoje.html


咨詢
建站咨詢
