我在我的 python 模块中使用 rdflib-4.0.1 和 rdfextras-0.4。
将数据加载到 rdfstore 时收到以下消息:
No handlers could be found for logger "rdflib.term"
我错过了什么?
我在我的 python 模块中使用 rdflib-4.0.1 和 rdfextras-0.4。
将数据加载到 rdfstore 时收到以下消息:
No handlers could be found for logger "rdflib.term"
我错过了什么?
“无处理程序”警告来自 Python 的标准logging
模块。记录器需要一个处理程序来确定它应该如何处理已记录的消息——例如,应该将文本发送到磁盘还是控制台。请参阅处理程序上的 Python 2 Logging HOWTO。记录器也有名称,因此可以针对程序的不同部分以不同的方式控制记录消息。RDFLib 写入"rdflib.term"
在其 term.py 中命名的记录器。
logging.basicConfig()
在使用 RDFLib 时,我习惯于设置一些合理的默认值:
import logging
import rdflib
logging.basicConfig()
# now load your graph
g = rdflib.Graph()
g.load("life_the_universe_everything.rdf")
这一次,当您加载图表时,您应该在控制台中看到 rdflib 的日志消息,而不是“无处理程序”警告。
关于 rdflib 的事情是它会在您导入它时记录,因为它确实
if _interactive_mode:
logger.info("RDFLib Version: %s" % __version__)
else:
logger.debug("RDFLib Version: %s" % __version__)
在其__init__.py
. 因此,虽然很多东西都记录了,但 rdflib 的区别在于很早就记录了,并且在不寻常的上下文中。如果有处理程序,这很好,即使它是默认处理程序,但在许多情况下没有,所以你会得到这个小日志垃圾邮件。
以免你被诱惑打开一个错误,请先阅读这个。