欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中l(wèi)ogging.NullHandler 的使用教程

 更新時(shí)間:2018年11月29日 16:03:04   作者:丹楓無(wú)跡  
這篇文章主要介紹了Python中l(wèi)ogging.NullHandler 的使用教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下

在使用 peewee 框架時(shí),默認(rèn)是不會(huì)出現(xiàn)日志消息的。

from peewee import Model, CharField, DateTimeField, IntegerField
from peewee_mssql import MssqlDatabase
db = MssqlDatabase(database='test', host='.', user='sa', password='sa')
class BaseModel(Model):
 class Meta:
  database = db
class Person(BaseModel):
 Name = CharField(verbose_name='姓名', max_length=20)
 Age = IntegerField(verbose_name='年齡')
 Birthday = DateTimeField(verbose_name='生日', null=True)
p = Person(Name='張三', Age='20', Birthday='2018-01-01')
p.save()

我們?cè)谏厦娲a中加上一個(gè)日志的定義:

import logging
logger = logging.getLogger('peewee')
logger.setLevel(logging.DEBUG)
logger.addHandler(logging.StreamHandler())

神奇的現(xiàn)象出現(xiàn)了,運(yùn)行程序打出了一行日志:

我們雖然定義了日志,但是并沒(méi)有寫任何的日志,那么這一行日志是哪里來(lái)的呢?

查看 peewee 的源碼,發(fā)現(xiàn)其中有日志的定義:

關(guān)于 logging.NullHandler,網(wǎng)上大多數(shù)的解釋就一句話:該 Handler 實(shí)例會(huì)忽略 error messages,通常被想使用 logging 的 library 開發(fā)者使用來(lái)避免'No handlers could be found for logger XXX'信息的出現(xiàn)。

乍看沒(méi)明白,仔細(xì)一想就明白了,其實(shí)很簡(jiǎn)單。logging.getLogger(name) 方法是使用工廠方法返回一個(gè) logger 實(shí)例,如果名為 name 的 logger 已存在,則直接將其返回。

在 peewee 中,定義了一個(gè)名為“peewee”的 logger,但是只給了一個(gè) NullHandler,我們?cè)诖a中,logger = logging.getLogger('peewee'),這句實(shí)則就是獲取了 peewee 中定義的 logger,并給它添加了一個(gè) StreamHandler,那自然就可以輸出日志了。不信?給自己代碼中的 logger 改個(gè)名字,看看還有日志輸出不。

我們?cè)趯?library 的時(shí)候,也可以這樣定義一個(gè) NullHandler,具體的實(shí)現(xiàn)就交給調(diào)用的人去決定吧。

總結(jié)

以上所述是小編給大家介紹的Python中l(wèi)ogging.NullHandler 的使用教程,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評(píng)論