gpt4 book ai didi

python - 复制的 ZODB 数据库上出现错误消息 "no handlers could be found for logger ZODB.FileStorage"

转载 作者:太空狗 更新时间:2023-10-29 17:39:25 26 4
gpt4 key购买 nike

我使用 ZODB 创建了一个数据库,然后将其复制粘贴到另一台 PC。我想知道为什么每次我登录这个数据库(复制的)我都会得到这个错误:

no handlers could be found for logger (ZODB.FileStorage)

注意:程序不会中断,它只是将语句打印成红色,就好像它是一个错误。

这是什么烦人的消息,为什么每次登录时都会出现?

更新 no(1):什么是 python 日志系统?为什么我需要在我的应用程序中配置它?

注意:

  1. 我只使用 ZODB。

  2. 我的操作系统是 Windows XP sp2。

最佳答案

简答题

不需要为您的应用程序配置它。这样做很有用。

长答案

logging模块是一个 python 模块,它允许任何 python 代码以与使用它的实际应用程序输出无关的方式记录信息。任何深度的库都可以导入日志模块、日志信息、警告、错误等,而不必确切知道用​​户将如何接收它们。

您所看到的是您自己的应用程序中缺少处理程序。 ZODB 显然是在记录信息,但是因为您没有定义处理程序,所以此记录信息只是蒸发到以太中。它通知您,如果您想查看一些日志记录信息,您应该定义一个处理程序

来自Logging Cookbook :

import logging

# create logger with 'spam_application'
logger = logging.getLogger('spam_application')
logger.setLevel(logging.DEBUG)
# create file handler which logs even debug messages
fh = logging.FileHandler('spam.log')
fh.setLevel(logging.DEBUG)
# create console handler with a higher log level
ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
# create formatter and add it to the handlers
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# add the handlers to the logger
logger.addHandler(fh)
logger.addHandler(ch)

此示例使用您的应用的名称创建一个记录器。然后它创建两种类型的处理程序。一个是文件处理程序,用于将 DEBUG 级别的日志写入文件。第二个是流处理程序,它将向您的控制台发送错误。

如果你想看到更详细的信息进入你的控制台,你可以将日志级别更改为信息:

ch = logging.StreamHandler()
ch.setLevel(logging.INFO)

还要注意“格式化程序”的概念。您可以为不同的处理程序设置不同的日志格式。

如果您至少在您的应用中创建了一个流处理程序,那么它将不再警告您尚未定义处理程序。

对于 python 2.7+,logging 模块包含一个 NullHandler。它旨在在库(例如您的数据库库)中用作默认处理程序,当最终用户在没有任何日志记录处理程序的情况下使用库时(如您所做的那样),它会消除错误。因此,如果您根本不关心日志记录,只是想让它静音,您可以在自己的代码中添加一个 NullHandler。建议实际设置日志记录,但这只是另一种选择:

Adding NullHandler to the logger

import logging
logging.getLogger('spam_application').addHandler(logging.NullHandler())

关于python - 复制的 ZODB 数据库上出现错误消息 "no handlers could be found for logger ZODB.FileStorage",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11191398/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com