【发布时间】:2022-01-11 16:02:12
【问题描述】:
我想配置一个 MemoryHandler,以后可以将它部署到一个变量中。但是,我不知道将目标设置为什么,因此我可以打印包含所有错误的变量。
这是我当前的配置文件:
[loggers]
keys=root
[handlers]
keys=memoryHandler
[formatters]
keys=memoryFormatter
[logger_root]
level=DEBUG
handlers=memoryHandler
[handler_memoryHandler]
class=handlers.MemoryHandler
formatter=memoryFormatter
args=(10, DEBUG)
level=ERROR
; target=
[formatter_memoryFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=%Y-%m-%d %H:%M:%S
这是我当前的脚本:
import logging.config
logging.config.fileConfig(fname=r'./logger_config2.conf')
logging.info('INFO')
我想要这样的东西(伪代码):
my_flush_contents = memoryHandler.flush()
【问题讨论】:
-
您需要为该处理程序显式调用
setTarget,即logging.setTarget(otherHandler)。目标参数otherHandler是另一个处理程序,例如 FileHandler、StreamHandler 等。请参阅文档:docs.python.org/3/library/logging.handlers.html#memoryhandler。 -
@Nechoj 感谢您的回答。但是,如何将输出分配给变量?
-
见下方答案