gpt4 book ai didi

python - 将日志记录 "print"函数更改为 "tqdm.write",以便日志记录不会干扰进度条

转载 作者:太空狗 更新时间:2023-10-29 17:27:18 30 4
gpt4 key购买 nike

我有一个简单的问题:如何将内置 Python 记录器的 print 函数更改为 tqdm.write,以便记录消息不会干扰 tqdm 的进度条?谢谢!

最佳答案

您需要一个自定义日志处理程序:

import logging
import tqdm

class TqdmLoggingHandler(logging.Handler):
def __init__(self, level=logging.NOTSET):
super().__init__(level)

def emit(self, record):
try:
msg = self.format(record)
tqdm.tqdm.write(msg)
self.flush()
except Exception:
self.handleError(record)

然后将其添加到日志记录链中:

import time

log = logging.getLogger(__name__)
log.setLevel(logging.INFO)
log.addHandler(TqdmLoggingHandler())
for i in tqdm.tqdm(range(100)):
if i == 50:
log.info("Half-way there!")
time.sleep(0.1)

编辑:修复了调用 super TqdmLoggingHandler 的 init 方法时的错误,勤奋的读者@BlaineRogers 在评论中指出了这一错误。 (如果有人想进一步了解 Python 的这个阴暗区域,我推荐 https://fuhm.net/super-harmful/ )

关于python - 将日志记录 "print"函数更改为 "tqdm.write",以便日志记录不会干扰进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38543506/

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