我在我的python模块中使用rdflib-4.0.1和rdfextras-0.4。
我在将数据加载到rdfstore时收到以下消息:
No handlers could be found for logger "rdflib.term"
我错过了什么?
答案 0 :(得分:4)
“无处理程序”警告来自Python的标准logging
模块。记录器需要一个处理程序来确定它应该对已经记录的消息做什么 - 例如,应该将文本发送到磁盘还是控制台。见Python 2 Logging HOWTO on Handlers。记录器也有名称,以便可以以不同的方式控制记录消息,以用于程序的不同部分。 RDFLib在其term.py中写入名为"rdflib.term"
的记录器。
在使用RDFLib时,我使用logging.basicConfig()
设置了一些合理的默认值:
import logging
import rdflib
logging.basicConfig()
# now load your graph
g = rdflib.Graph()
g.load("life_the_universe_everything.rdf")
这次加载图表时,您应该在控制台中看到rdflib的日志消息,而不是“无处理程序”警告。
答案 1 :(得分:0)
关于rdflib的原因是it logs when you import it,因为它确实存在
if _interactive_mode:
logger.info("RDFLib Version: %s" % __version__)
else:
logger.debug("RDFLib Version: %s" % __version__)
在其__init__.py
中。因此,尽管许多事情会记录日志,但rdflib却具有在很早的情况下以及在异常情况下记录日志的区别。即使有一个处理程序(即使它是默认处理程序)也很好,但是在许多情况下没有,所以您得到了这个小日志。
以免引起诱惑,请read this one first。