3

我在我的 python 模块中使用 rdflib-4.0.1 和 rdfextras-0.4。

将数据加载到 rdfstore 时收到以下消息:

No handlers could be found for logger "rdflib.term"

我错过了什么?

4

2 回答 2

4

“无处理程序”警告来自 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 的日志消息,而不是“无处理程序”警告。

于 2013-07-10T20:36:47.863 回答
0

关于 rdflib 的事情是它会在您导入它时记录,因为它确实

if _interactive_mode:
    logger.info("RDFLib Version: %s" % __version__)
else:
    logger.debug("RDFLib Version: %s" % __version__)

在其__init__.py. 因此,虽然很多东西都记录了,但 rdflib 的区别在于很早就记录了,并且在不寻常的上下文中。如果有处理程序,这很好,即使它是默认处理程序,但在许多情况下没有,所以你会得到这个小日志垃圾邮件。

以免你被诱惑打开一个错误,请先阅读这个

于 2019-02-27T03:19:47.023 回答