成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python 中 Logging 模塊使用詳情

開(kāi)發(fā)
本文主要介紹了logging模塊的基礎(chǔ)用法,除非是自己寫(xiě)的小腳本中我們使用print()函數(shù),其他情況下最好還是用logging模塊來(lái)打印信息,輸出日志吧。

1.為什么要用logging模塊

在實(shí)際應(yīng)用中,日志文件十分重要,通過(guò)日志文件,我們知道程序運(yùn)行的細(xì)節(jié);同時(shí),當(dāng)程序出問(wèn)題時(shí),我們也可以通過(guò)日志快速定位問(wèn)題所在。在我們寫(xiě)程序時(shí),也可以借助 logging 模塊的輸出信息來(lái)調(diào)試代碼。

但是很多人還是在程序中使用print()函數(shù)來(lái)輸出一些信息,比如:

print 'Start reading database'
records = model.read_recrods()
print '# records', records
print 'Updating record ...'
model.update_records(records)
print 'done'

這樣用的話缺點(diǎn)很明顯,當(dāng)程序?qū)懞眠\(yùn)行時(shí),我們要把這些print()函數(shù)刪掉,在簡(jiǎn)單的的程序中用還行,當(dāng)程序比較復(fù)雜時(shí),這個(gè)辦法很低效。

如果使用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')

運(yùn)行結(jié)果如下:

INFO:__main__:Start reading database
INFO:__main__:Updating records ...
INFO:__main__:Finish updating records

你也許會(huì)問(wèn),這和print()函數(shù)有什么區(qū)別呢?區(qū)別就在于,logging模塊可以通過(guò)改變level來(lái)控制一些語(yǔ)句是否被輸出,比如當(dāng)我們把level改成DEBUG級(jí)別:

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自帶的一個(gè)包,因此在使用的時(shí)候,不必安裝,只需要import即可。有5個(gè)level,分別是debug,主要是查看一下程序運(yùn)行的信息,一般是調(diào)試程序要看的信息;info,是我們看程序是否如預(yù)料執(zhí)行的信息;warn,意料之外的,但是不影響程序運(yùn)行;error和critical就是一些比較嚴(yán)重的問(wèn)題,會(huì)影響程序運(yùn)行。默認(rèn)leval是warn,這個(gè)時(shí)候debug級(jí)別和info級(jí)別就不會(huì)被輸出到日志里了。如果想要看到這些信息,就需要進(jìn)行一些設(shè)置。

3.基礎(chǔ)設(shè)置

我們主要調(diào)用basicConfig(***kwargs*)這個(gè)函數(shù)對(duì)logging進(jìn)行設(shè)置。

常用的參數(shù)如下:

  • level:主要調(diào)整logging的級(jí)別
  • filename:輸出日志的路徑
  • filemode:直接寫(xiě)入還是追加寫(xiě)入
  • format:輸出的格式

我們通過(guò)調(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è)置了時(shí)間的,所以得到了時(shí)間,我們可以輸出多種想要的信息

總結(jié):

本文主要介紹了logging模塊的基礎(chǔ)用法,除非是自己寫(xiě)的小腳本中我們使用print()函數(shù),其他情況下最好還是用logging模塊來(lái)打印信息,輸出日志吧。

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2021-11-17 10:11:08

PythonLogging模塊

2015-09-29 10:26:51

pythonlogging模塊

2012-05-17 10:16:00

HibernateJavamerge

2021-03-08 15:04:48

編程Python代碼

2010-03-22 15:38:46

Python常用模塊

2010-03-15 15:30:35

Python模塊

2024-10-14 17:13:48

模塊Python編程

2020-11-11 08:24:06

collection

2010-02-03 10:12:53

Python模塊

2020-11-06 13:42:59

itertools

2024-01-22 12:10:57

zoneinfo模塊解析

2010-07-01 14:53:09

SNMPMIBUCD-SNMP

2025-04-01 08:20:00

Logging模塊Python日志記錄

2019-09-02 10:51:59

Python腳本語(yǔ)言程序員

2025-03-21 09:58:59

Python數(shù)據(jù)類(lèi)型安全

2023-11-27 15:08:52

Python編程語(yǔ)言

2023-12-22 08:38:02

Pythondatetimetime

2009-11-23 20:09:03

ibmdwLotus

2013-06-08 17:09:35

Android開(kāi)發(fā)移動(dòng)開(kāi)發(fā)XML解析

2010-02-03 09:19:31

Python模塊
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久久久成人精品免费播放动漫 | 女人夜夜春 | 国产日韩一区二区三区 | 成人在线视频网站 | 在线国产中文字幕 | 色毛片 | 午夜欧美 | 成人精品一区二区 | 免费视频久久久久 | 亚洲精品免费视频 | 国产精品久久久久久久久久久免费看 | 一区欧美 | 国产亚洲精品久久yy50 | www.99热.com| 亚洲欧美日韩电影 | 精品在线免费看 | 天天碰夜夜操 | 日韩区| 先锋av资源网 | 精品欧美在线观看 | 九九激情视频 | 国内精品免费久久久久软件老师 | 国产99久久久国产精品下药 | 欧美一区二区在线观看 | 久久精品手机视频 | 黄色毛片免费视频 | 色一情一乱一伦一区二区三区 | 欧美精品99| 欧美成人a∨高清免费观看 色999日韩 | 成人在线精品视频 | 成人国产精品免费观看视频 | 国产91av视频在线观看 | 日韩一级免费观看 | 热re99久久精品国99热观看 | 韩日一区二区三区 | 日韩不卡在线 | 一级毛片免费视频 | 欧美极品视频 | 97精品视频在线 | 成人综合视频在线观看 | 成人精品久久 |