gpt4 book ai didi

python - logging.config,属性错误 : type object 'FileHandler' has no attribute 'split'

转载 作者:行者123 更新时间:2023-12-03 23:51:40 25 4
gpt4 key购买 nike

我正在尝试使用 dictConfig() 方法配置我的日志记录。我想我理解了 Dictionary Schema Details ,但我的代码仍然会引发错误。

代码:

import logging
import logging.config

verbose_formatter_conf = {
"format": "%(asctime)-15s %(name)s %(levelname)-9s %(message)s",
}

formatters_dict = {
"verbose_formatter": verbose_formatter_conf,
}

logfile_handler_conf = {
"class": logging.FileHandler,
"level": logging.DEBUG,
"formatter": "verbose_formatter",
"filename": "logfile.txt",
"mode": "w",
"encoding": "utf-8",
}

handlers_dict = {
"logfile_handler": logfile_handler_conf,
}

verbose_file_logger_conf = {
"propagate": True,
"handlers": ["logfile_handler"]
}

loggers_dict = {
"verbose_file_logger": verbose_file_logger_conf
}

final_conf = {
"version": 1,
"formatters": formatters_dict,
"handlers": handlers_dict,
"loggers": loggers_dict,
"incremental": False,
}

logging.config.dictConfig(final_conf)
logger = logging.getLogger(__name__)

logger.debug("hello")

它抛出的错误是:

Traceback (most recent call last):
File "C:\Program Files\Python37\lib\logging\config.py", line 555, in configure
handler = self.configure_handler(handlers[name])
File "C:\Program Files\Python37\lib\logging\config.py", line 705, in configure_handler
klass = self.resolve(cname)
File "C:\Program Files\Python37\lib\logging\config.py", line 372, in resolve
name = s.split('.')
AttributeError: type object 'FileHandler' has no attribute 'split'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "c:\Users\Tejul\.vscode\extensions\ms-python.python-2019.6.22090\pythonFiles\ptvsd_launcher.py", line 43, in <module>
main(ptvsdArgs)
File "c:\Users\Tejul\.vscode\extensions\ms-python.python-2019.6.22090\pythonFiles\lib\python\ptvsd\__main__.py", line 434, in main
run()
File "c:\Users\Tejul\.vscode\extensions\ms-python.python-2019.6.22090\pythonFiles\lib\python\ptvsd\__main__.py", line 312, in run_file
runpy.run_path(target, run_name='__main__')
File "C:\Program Files\Python37\lib\runpy.py", line 263, in run_path
pkg_name=pkg_name, script_name=fname)
File "C:\Program Files\Python37\lib\runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "C:\Program Files\Python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "g:\Sven\Python\pygtris\logger_conf.py", line 42, in <module>
logging.config.dictConfig(final_conf)
File "C:\Program Files\Python37\lib\logging\config.py", line 792, in dictConfig
dictConfigClass(config).configure()
File "C:\Program Files\Python37\lib\logging\config.py", line 563, in configure
'%r' % name) from e
ValueError: Unable to configure handler 'logfile_handler'

但是我不明白。我认为我的处理程序的配置与文档说明的一样。我监督了什么吗?

最佳答案

错误似乎是 logfile_handler_conf 字典中的“class”值应该是一个字符串“logging.FileHandler”,而不是 FileHandler 类本身。

关于python - logging.config,属性错误 : type object 'FileHandler' has no attribute 'split' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56815779/

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