Noonisy
Python输出重定向
2022-10-08
阅读:395

Python输出重定向


tee命令重定向

在控制台输出,并保存到文件中,缺点是显示内容与程序运行不同步
python test.py 2>&1 | tee test.log

自定义logger重定向

为了解决上述问题,可以自定义一个class logger,同时写入文件和输出控制台
import sys

class Logger(object):
    def __init__(self, filename='default.log', stream=sys.stdout):
        self.terminal = stream
        self.log = open(filename, 'a')

    def write(self, message):
        self.terminal.write(message)
        self.log.write(message)

    def flush(self):
        pass


sys.stdout = Logger('out.log', sys.stdout)
sys.stderr = Logger('error.log', sys.stderr)
最后编辑于:2022 年 10 月 08 日 09:56
邮箱格式错误
网址请用http://或https://开头