Python小知识二则 - 禁用模块日志和__name__的含义

版权声明:本文为博主原创文章,可以转载但必须注明出处。 https://blog.csdn.net/nirendao/article/details/80659333

1.如何禁用import进来的第三方module的日志?
A:众所周知,执行如下代码,可以打印log

import logging
logger.logging.getLogger('__name__')

logger.info('xxx')
logger.debug('xxx')

但是比较讨厌的一个问题是,在我们自己的程序import了第三方库之后,第三方库也有如上的语句,于是这些log也被打印到了我们自己设置的log里。在有些时候,我们并不想要这些第三方的log. 比如,我 import zabbix_client ,然后发现这个zabbix_client会打印出大量的INFO级别的日志,我都不想要,怎么做呢?
在我们自己的代码里,使用如下的语句即可disable这些第三方的module的日志了:

import logging
logging.getLogger('zabbix_client.api_wrapper').setLevel(logging.WARNING)

2.__name__ 是什么意思?
A:
当直接执行一个脚本的时候,比如,python test.py 此时,test.py 里的 name 就是 ‘main‘.
当在Python文件A中import module B的时候,在B.py中的 name 就是这个module的名字。

比如,

from zabbix_client import ZabbixClientError

这个 ZabbixClientError 是定义在 zabbix_client/api_wrapper.py 中的。那么此时,api_wrapper.py 中的 __name__ 就是 “zabbix_client.api_wrapper”.

猜你喜欢

转载自blog.csdn.net/nirendao/article/details/80659333
今日推荐