gpt4 book ai didi

Python 记录到配置文件中初始化的 MemoryHandler

转载 作者:太空宇宙 更新时间:2023-11-03 15:08:54 28 4
gpt4 key购买 nike

我正在尝试将 python MemoryHandler 添加到日志记录配置文件中。我正在使用与之前工作的文件处理程序类似的结构。我对收到的错误有点困惑,并且无法弄清楚我缺少什么才能将日志记录保存到内存中。下面包含了必要的信息。我们将不胜感激。

log_settings.conf

[loggers]
keys=root

[handlers]
keys=memHandler, consoleHandler

[formatters]
keys=fileFormatter, consoleFormatter

[logger_root]
level=DEBUG
handlers=memHandler, consoleHandler

[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=consoleFormatter
args=(sys.stdout,)

[handler_memHandler]
class=handlers.MemoryHandler
formatter=fileFormatter
args=(10, DEBUG, '%(logfilename)s')

[formatter_fileFormatter]
format=[%(asctime)s] [%(levelname)8s] --- (%(filename)15s:%(lineno)4s) %(message)s
datefmt=%Y-%m-%d %H:%M:%S

[formatter_consoleFormatter]
format=%(message)s

错误回溯

Traceback (most recent call last):
File "E:\BuildScript\proj_tcl\blr_sbz\blr_sbz_build.py", line 22, in <module>
main(args.jenkins, args.revision, args.jenkins_num)
File "E:\BuildScript\proj_tcl\blr_sbz\blr_sbz_build.py", line 10, in main
build(jenkins, revision, jenkins_num)
File "../scripts\build.py", line 17, in build
logging.info('Starting the FGPA build script')
File "C:\Program Files\Python36\lib\logging\__init__.py", line 1870, in info
root.info(msg, *args, **kwargs)
File "C:\Program Files\Python36\lib\logging\__init__.py", line 1301, in info
self._log(INFO, msg, args, **kwargs)
File "C:\Program Files\Python36\lib\logging\__init__.py", line 1437, in _log
self.handle(record)
File "C:\Program Files\Python36\lib\logging\__init__.py", line 1447, in handle
self.callHandlers(record)
File "C:\Program Files\Python36\lib\logging\__init__.py", line 1509, in callHandlers
hdlr.handle(record)
File "C:\Program Files\Python36\lib\logging\__init__.py", line 858, in handle
self.emit(record)
File "C:\Program Files\Python36\lib\logging\handlers.py", line 1213, in emit
self.flush()
File "C:\Program Files\Python36\lib\logging\handlers.py", line 1289, in flush
self.target.handle(record)
AttributeError: 'str' object has no attribute 'handle'

build.py

logging.config.fileConfig('../scripts/logging/log_settings.conf', defaults={'logfilename': '../scripts/logging/log.log'})
logging.info('Starting the FGPA build script')

最佳答案

改用此配置文件:

[loggers]
keys=root

[handlers]
keys=memHandler, consoleHandler

[formatters]
keys=fileFormatter, consoleFormatter

[logger_root]
level=DEBUG
handlers=memHandler

[handler_consoleHandler]
class=StreamHandler
level=INFO
formatter=consoleFormatter
args=(sys.stdout,)

[handler_memHandler]
class=handlers.MemoryHandler
formatter=fileFormatter
args=(10, DEBUG)
target=consoleHandler

[formatter_fileFormatter]
format=[%(asctime)s] [%(levelname)8s] --- (%(filename)15s:%(lineno)4s) %(message)s
datefmt=%Y-%m-%d %H:%M:%S

[formatter_consoleFormatter]
format=%(message)s

请注意,您不应将 consoleHandler 包含在根记录器的处理程序列表中。此外,您需要使用 target= 行设置目标,并且它需要引用目标处理程序的键。使用以下内容进行配置:

logging.config.fileConfig('logging.ini')

关于Python 记录到配置文件中初始化的 MemoryHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44408130/

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