gpt4 book ai didi

python - 如何仅在出现错误时获取所有 Python 日志?

转载 作者:太空宇宙 更新时间:2023-11-03 21:22:40 26 4
gpt4 key购买 nike

我正在使用内置于日志记录类中的Python。我只想在发生错误时注销,但当发生错误时,为了调试目的注销该点之前的所有内容。

如果我也可以重置它,那就太好了,这样长时间运行的进程就不会包含千兆字节的日志。

举个例子。我有一个处理一百万个小部件的流程。处理小部件可能很复杂并且涉及多个步骤。如果处理失败,了解该小部件到目前为止的所有日志将会很有帮助。

from random import randrange

logger = logging.getLogger()
for widget in widgetGenerator():
logger.reset()
widget.process(logger)

class Widget():
def process(self, logger):
logger.info('doing stuff')
logger.info('do more stuff')
if randrange(0, 10) == 5:
logger.error('something bad happened')

将打印以下内容的十分之一:

doing stuff

doing more stuff

something bad happened

但是否则不会打印正常的日志。

可以按原样使用记录器来完成此操作还是我需要滚动自己的实现?

最佳答案

使用MemoryHandler使用阈值来缓冲记录,例如ERROR,并使 MemoryHandlertarget 属性指向一个处理程序,该处理程序写入例如控制台或文件。那么只有在程序执行期间达到阈值(例如 ERROR)时才会出现输出。

关于python - 如何仅在出现错误时获取所有 Python 日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54117408/

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