如何仅在出错时获取所有Python日志?

2024-04-20 01:15:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是日志类内置的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')

10次中的1次将打印以下内容:

doing stuff

doing more stuff

something bad happened

但是正常的日志不会被打印。你知道吗

这可以用logger完成吗?或者我需要自己实现吗?你知道吗


Tags: 目的info部件more错误widgetloggerprocess
1条回答
网友
1楼 · 发布于 2024-04-20 01:15:33

使用MemoryHandler来缓冲使用阈值(例如ERROR)的记录,并使MemoryHandlertarget属性指向写入控制台或文件的处理程序。然后,只有在程序执行期间达到阈值(例如ERROR)时才应出现输出。你知道吗

相关问题 更多 >