gpt4 book ai didi

python - 将日志设置为最小和最大级别,以排除错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:11 25 4
gpt4 key购买 nike

假设我想要多个处理程序,但我不希望 logging.ERROR 级别的消息显示在除 logs/error.log 之外的任何文件中/p>

formatter = logging.Formatter('%(asctime)s %(levelname)s: %(message)s', datefmt='%m/%d %H:%M:%S')

handler = RotatingFileHandler('logs/debug.log', maxBytes=100000, backupCount=1)
handler.setLevel(logging.DEBUG)
handler.setFormatter(formatter)

error_handler = RotatingFileHandler('logs/error.log', maxBytes=100000, backupCount=1)
error_handler.setFormatter(formatter)
error_handler.setLevel(logging.ERROR)

app.logger.addHandler(handler)
app.logger.addHandler(error_handler)

假设我希望处理程序处理从 logging.DEBUG 到并包括 logging.WARNING 的所有内容,但不包括 logging.ERROR。这可能吗?

最佳答案

您可以指定自定义 logging filter过滤掉不需要级别的记录:

class LevelFilter(object):
def __init__(self, level):
self.level = level

def filter(self, record):
return record.levelno != self.level

然后您可以使用 addFilter() 将过滤器添加到处理程序中:

handler = RotatingFileHandler('logs/debug.log', maxBytes=100000, backupCount=1)
handler.setLevel(logging.DEBUG)
handler.setFormatter(formatter)
handler.addFilter(LevelFilter(logging.ERROR))

在这种情况下,您不会在 debug.log 中看到具有 ERROR 级别的消息。

另见:

希望这就是您所需要的。

关于python - 将日志设置为最小和最大级别,以排除错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23175653/

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