Python 包导入禁用日志记录

Python package import disables logging

为什么会这样(即出现日志消息):

import logging as log
log.basicConfig(format='%(levelname)s (%(funcName)s): %(message)s',
                level=log.INFO)
from shapely.geometry import Point
log.info("test")

> INFO (<module>): test

这不是(即不显示日志消息):

import logging as log
from shapely.geometry import Point
log.basicConfig(format='%(levelname)s (%(funcName)s): %(message)s',
                level=log.INFO)
log.info("test")

我是不是做错了什么,或者这可能是 shapely 包/函数中的错误?

shapely 模块正在使用 logging 在导入时 输出警告和调试消息 。日志记录模块 autoconfigures 当您第一次尝试向其记录消息并且尚未配置时。所以导入 shapely 如果还没有配置 logging 会有副作用

配置后,basicConfig 无效,除非您重置配置。您可以通过清除根记录器处理程序来做到这一点:

import logging
del logging.getLogger().handlers[:]

但您最好在导入shapely.

之前配置日志记录