我正在使用内置在日志记录类中的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次:
做事
做更多的事情
坏事发生了
但是不会打印普通日志。
这可以使用记录器按原样完成,还是我需要推出自己的实现?
答案 0 :(得分:0)
使用MemoryHandler
使用阈值(例如, ERROR
,并使MemoryHandler
的{{1}}属性指向写入例如控制台或文件。然后,只有在程序执行期间达到阈值(例如target
)时,才应该输出。