python 的logging 模块

在使用 python 的时候会经常出现一些日志输出,这些日志信息便于我们来进行问题的定位,但有时候,我们判断一些输出信息并不重要,不希望其输出,这个时候,我们可以自定义其日志级别来实现不输出信息。

比如我在使用 tldextract 模块的时候就提示我

unable to cache TLDs in file /var/folders/v1/slqlcj696z9cpj31tbwzyly00000gn/T/_MEIhvCjxZ/tldextract/.tld_set: [Errno 2] No such file or directory: '/var/folders/v1/slqlcj696z9cpj31tbwzyly00000gn/T/_MEIhvCjxZ/tldextract/.tld_set'

但是我认为这个输出对于我来说无关紧要,所以我可以这样设置

import logging         logging.getLogger("tldextract").setLevel(logging.CRITICAL)

python的日志级别分为

logging.debug('debug message')
logging.info('info message')
logging.warn('warn message')
logging.error('error message')
logging.critical('critical message')

日志级别

级别 何时使用
DEBUG 详细信息,典型地调试问题时会感兴趣。
INFO 证明事情按预期工作。
WARNING 表明发生了一些意外,或者不久的将来会发生问题(如‘磁盘满了’)。软件还是在正常工作。
ERROR 由于更严重的问题,软件已不能执行一些功能了。
CRITICAL 严重错误,表明软件已不能继续运行了。