我使用ZODB
创建了一个数据库,然后将其复制粘贴到另一台PC上。我想知道为什么每次登录此数据库(复制的数据库)时都会出现以下错误:
no handlers could be found for logger (ZODB.FileStorage)
注意:程序没有中断,它只是用红色打印出语句,就好像这是一个错误。
这是什么烦人的信息,为什么每次我登录时都会出现这种情况?
更新号(1):什么是python日志系统?为什么需要在应用程序中配置它?
注:
我只使用ZODB。
我的操作系统是Windows XP sp2。
Tags:
简短回答
您不需要为应用程序配置它。这样做很有用。
长答案
logging模块是一个python模块,它允许任何python代码以不可知的方式将信息输出给使用它的实际应用程序。任何深度的库都可以导入日志模块、日志信息、警告、错误等,而不必确切知道用户将如何接收它们。
您看到的是您自己的应用程序中缺少处理程序。ZODB显然是日志信息,但是因为您还没有定义处理程序,所以这些日志信息只是蒸发到乙醚中。它通知您,如果您想查看一些日志信息,应该定义一个处理程序
从Logging Cookbook:
此示例创建一个日志记录程序,其中包含应用程序的名称。然后创建两种类型的处理程序。一个是将调试级日志写入文件的文件处理程序。第二个是将错误发送到控制台的流处理程序。
如果您想在控制台上看到更多详细信息,可以将日志级别更改为信息:
还要注意“格式化程序”的概念。您可以为不同的处理程序设置不同的日志格式。
如果您至少在应用程序中创建了流处理程序,则它将不再警告您尚未定义处理程序。
对于python 2.7+,
logging
模块包含一个NullHandler
。它将在库(如数据库库)中用作默认处理程序,当最终用户在不使用任何日志处理程序的情况下(如您所做的那样)使用库时,它将消除错误。因此,如果您根本不关心日志记录,只想让它安静下来,那么可以在自己的代码中添加一个NullHandler
。建议实际设置日志记录,但这只是另一个选项:Adding NullHandler to the logger
相关问题 更多 >
编程相关推荐