gpt4 book ai didi

python - 如何将标准输出和标准错误重定向到 Python 中的记录器

转载 作者:IT老高 更新时间:2023-10-28 22:14:09 29 4
gpt4 key购买 nike

我有一个具有 RotatingFileHandler 的记录器。我想将所有 StdoutStderr 重定向到记录器。该怎么做?

最佳答案

没有足够的代表发表评论,但我想添加对我有用的版本,以防其他人处于类似情况。

class LoggerWriter:
def __init__(self, level):
# self.level is really like using log.debug(message)
# at least in my case
self.level = level

def write(self, message):
# if statement reduces the amount of newlines that are
# printed to the logger
if message != '\n':
self.level(message)

def flush(self):
# create a flush method so things can be flushed when
# the system wants to. Not sure if simply 'printing'
# sys.stderr is the correct way to do it, but it seemed
# to work properly for me.
self.level(sys.stderr)

这看起来像:

log = logging.getLogger('foobar')
sys.stdout = LoggerWriter(log.debug)
sys.stderr = LoggerWriter(log.warning)

关于python - 如何将标准输出和标准错误重定向到 Python 中的记录器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19425736/

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