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