国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python中logging.NullHandler 的使用教程

2020-01-04 13:58:09
字體:
來源:轉載
供稿:網友

在使用 peewee 框架時,默認是不會出現日志消息的。

from peewee import Model, CharField, DateTimeField, IntegerFieldfrom peewee_mssql import MssqlDatabasedb = MssqlDatabase(database='test', host='.', user='sa', password='sa')class BaseModel(Model): class Meta:  database = dbclass 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()

我們在上面代碼中加上一個日志的定義:

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

神奇的現象出現了,運行程序打出了一行日志:

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

查看 peewee 的源碼,發現其中有日志的定義:

關于 logging.NullHandler,網上大多數的解釋就一句話:該 Handler 實例會忽略 error messages,通常被想使用 logging 的 library 開發者使用來避免'No handlers could be found for logger XXX'信息的出現。

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

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

我們在寫 library 的時候,也可以這樣定義一個 NullHandler,具體的實現就交給調用的人去決定吧。

總結

以上所述是小編給大家介紹的Python中logging.NullHandler 的使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东至县| 望城县| 宜春市| 青浦区| 鹤山市| 定西市| 西乡县| 宜宾市| 东丽区| 赤水市| 肥城市| 莎车县| 开封县| 蓝田县| 留坝县| 朝阳区| 五家渠市| 南阳市| 新化县| 马关县| 井研县| 新龙县| 襄樊市| 曲阜市| 竹溪县| 五常市| 肇庆市| 阿尔山市| 武冈市| 磴口县| 资中县| 东源县| 湘乡市| 南昌县| 开江县| 抚州市| 察隅县| 淮北市| 新宁县| 丁青县| 治县。|