gpt4 book ai didi

Python 日志记录未使用指定的处理程序

转载 作者:行者123 更新时间:2023-12-01 02:37:25 25 4
gpt4 key购买 nike

使用 Python 记录器,我有两个处理程序,一个用于 root,一个用于其他所有内容。当我将日志记录设置为“main”时,我可以看到 logger.handler 变量中没有设置任何处理程序。相反,它使用 syslog 的根处理程序。

下面是正在使用的代码和配置的副本。

代码:

def load_config(self):
logging.config.fileConfig('/etc/msdb/integration/logging.conf')
log = logging.getLogger('main')
log.debug("Hello")

配置:

[loggers]
keys=root,props,main,thread,rabbit,blockchain

[handlers]
keys=file,syslog

[formatters]
keys=simple

[logger_root]
level=DEBUG
handlers=syslog

[logger_props]
level=DEBUG
handlers=file
qualname=Properties
propagate=0

[logger_main]
level=DEBUG
handlers=file
qualname=Main
propagate=0

[logger_thread]
level=DEBUG
handlers=file
qualname=Thread
propagate=0

[logger_rabbit]
level=DEBUG
handlers=file
qualname=RabbitMQ
propagate=0

[logger_blockchain]
level=DEBUG
handlers=file
qualname=BigChainDB
propagate=0

[handler_file]
class=logging.handlers.RotatingFileHandler
level=NOTSET
formatter=simple
args=('/var/log/msdb/msdb.intergration.log','a', 100000, 1, 'utf8')

[handler_syslog]
class=StreamHandler
level=DEBUG
formatter=simple
args=(sys.stdout,)

[formatter_simple]
format=%(asctime)s - %(levelname)%s - %(threadName)%s - %(filename)s:%(lineno)d - %(message)s
datefmt=

最佳答案

这是因为您的配置中的记录器称为 Main (qualname 设置),但您登录的记录器称为 main。记录器名称区分大小写:名称应完全匹配才能按预期工作。

关于Python 日志记录未使用指定的处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46077517/

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